我有两张桌子;新闻和类别。在NEWS表中,CatID字段与类别中的CatID表匹配。我使用以下代码获取categoryID,但我想要新闻的类别名称,而不是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>
答案 0 :(得分: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
答案 1 :(得分:0)
根据我的理解,也许你想做:
SELECT name FROM CATEGORIES as c, NEWS as n WHERE c.CatID = n.CatID AND n.CatID = 123
我在SQL中有点生疏,我觉得它是这样的。
从我对你的问题的理解,你想做这样的事情。
答案 2 :(得分:0)
在下文中,我为新闻和类别创建了2个表:
表新闻
<强> ID | cat_id |标题强>
1 | 1 |测试
表类别
id |名称强>
1 |恐怖
你可以像这样选择使用OUTER JOIN的类别名称
SELECT news.*, categories.name AS category_name FROM news
LEFT JOIN categories ON categories.id= news.cat_id;
如果您想了解有关此outer join
的更多信息