2011-01-13 13 views
1

私は2つのテーブルを持っています。ニュースとカテゴリ。 NEWSテーブルには、カテゴリのCatIDテーブルと一致するCatIDフィールドがあります。私は次のコードでcategoryIDを取得しますが、IDではなくニュースのカテゴリ名にします。カテゴリテーブルからどのように引き出すことができますか?2つの異なるテーブルの一致ID

<?php 

$SQL = mysql_query("SELECT * FROM News WHERE Active = 1 ORDER BY DateEntered DESC"); 

    while ($Result = mysql_fetch_array($SQL)) { 
$CatID[] = $Result[CatID]; 
$NewsName[] = $Result[NewsName]; 
$NewsShortDesc[] = $Result[NewsShortDesc]; 
} 
?> 

       <div class="toparticle"> 
        <span class="section"><?=$CatID[0] ?> </span> 
        <span class="headline"><?=$NewsName[0] ?></span> 
        <p><?=$NewsShortDesc[0] ?></p> 
       </div> 
+2

ご質問についての詳細をお知りになりたい場合は、OUTERはこの

SELECT news.*, categories.name AS category_name FROM news LEFT JOIN categories ON categories.id= news.cat_id; 

のようなJOINを使用カテゴリの名前を選択することができますが、いくつかのテキストが欠けているように見える、あなたが更新して追加してくださいすることができますあなたが得るものの欠けている細部とあなたがしたいことは何ですか? –

+0

私に知らせるためにありがとう。 – Eat

+0

あなたが探しているのはおそらくJOIN(http://dev.mysql.com/doc/refman/5.0/ja/join.html)ですか? – lepe

答えて

0

名前を取得するために内部結合を含むようにSQLクエリを変更することができます。例として、 'CATEGORIES'テーブルのカテゴリ名列が 'CatName'と仮定します。あなたは、このクエリを使用することができます。

SELECT n.*, c.CatName FROM News n 
INNER JOIN Categories c ON n.CatID = c.CatID 
WHERE Active = 1 
ORDER BY DateEntered ASC 
0

私が理解したものでは、多分あなたがしたい:

SELECT name FROM CATEGORIES as c, NEWS as n WHERE c.CatID = n.CatID AND n.CatID = 123

私はそれがこのようなものだと思う、SQLに少し錆びています。

私はあなたの質問から理解したことから、あなたはこのようなことをしたいと思います。私はニュースやカテゴリの2テーブルを作成するには、次ので

+0

次の答えはよさそうだ:) –

0

表ニュース

ID | cat_id |タイトル

1 | 1 |テスト

表カテゴリー

ID |名称

1 |ホラー

uはuがこのouter join

関連する問題