显示多个列Mysql

时间:2012-04-09 15:23:52

标签: php mysql

我目前正在尝试展示会员已上传到我的网站的论文,用户点击主题并显示该主题下的论文。但是我的查询只是向我展示了所有论文而不是具有特定主题的论文。

//time to get our info
//time to get our info
$sql = "SELECT paper.title, paper.username, paper.abstract, paper.filelocation FROM `paper`, `topic` WHERE topic_name = 'artificial intelligence' ";
$result = mysql_query($sql);
while($file = mysql_fetch_array($result)){
    echo '<li>';
    echo '<h1>'.$file['title'].'</h1><br />';
    //now the file info and link
    echo '<h3>Uploaded By: '.$file['username'].'</h3><br />';
    echo '<a href="'.$file['filelocation'].'">'.$file['title'].'</a>';
    echo '<h1> Abstract : ' .$file['abstract'].'</h1><br />';
    echo '</li>';
}
?>
</ul

这是我的表格 ASSO

paper_id topic_id

主题

topic_id topic__name

paper_id 标题 用户名 抽象 filelocation

1 个答案:

答案 0 :(得分:5)

您需要将两个表连接在一起,并附带链接它们的关键条件:

SELECT
    paper.title,
    paper.username,
    paper.abstract,
    paper.filelocation
FROM `paper`
INNER JOIN `topic` on `paper`.`topic_id` = `topic`.`topic_id`
WHERE topic_name = 'artificial intelligence'

否则,您将交叉连接两个表,这将为您提供两个表之间的所有可能组合。