2011-01-13 138 views
1

我有兩個表;新聞和CATEGORIES。在NEWS表中,有CatID字段與類別中的CatID表匹配。我用下面的代碼得到categoryID,但我想要新聞的類別名稱,而不是ID。我怎樣才能從類別表中拉出來?匹配兩個不同表中的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

你的問題似乎缺少一些文字,你可以請更新和添加你所得到的東西的缺失細節以及你想要做什麼? – 2011-01-13 01:17:15

+0

謝謝你通知我。 – Eat 2011-01-13 01:21:59

回答

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生疏了,我覺得它是這樣的。

從我的理解你的問題,你想要做這樣的事情。

0

下面我創建2臺的新聞和類別:

表新聞

ID | cat_id |標題

1 | 1 |測試

表格類別

ID |名稱

1 |恐怖

U可以選擇類別使用OUTER的名字JOIN這樣

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

如果u想知道更多關於這outer join