在一个查询中获取多个表

时间:2011-07-26 05:41:16

标签: php

这是一个三十个职位。所以我很抱歉!

但我得不到我想要的东西!

我会尝试解释更多..

我有两张桌子..

POSTS< - my(所有网站帖子) 评论< - 我(所有网站评论)

我希望在这一页中显示所有的帖子和评论

购买(1个查询)

我有POSTS表(100帖子) 我有COMMENTS表(20条评论)

我试试这段代码

$qq = mysql_query("SELECT posts.*,comments.* 
FROM posts LEFT JOIN comments 
ON posts.post_id = comments.post_id");
    while($tt = mysql_fetch_array($qq)){
    echo $tt['comment_title'] . '<br />'; //the title of comments !
}

在上面,我试图打印评论标题

我上面说过我只有(20条评论)!

输出代码(120条评论重复!)

120是两张桌子的总数!

/ *我只想打印20条评论和100条帖子(在一个查询中)

我怎么能这样做! ?

最后我很抱歉这个问题

但我真的需要帮助!我的网站已关闭

3 个答案:

答案 0 :(得分:0)

我假设您需要获取所有帖子(以及您指的是文章的帖子)

是的,您可以使用一个查询:

SELECT * FROM articles;

获取所有文章

答案 1 :(得分:0)

<?php
$sql = "SELECT * FROM articles";
$query = mysql_query($sql);
while($result = mysql_fetch_assoc($query){
    echo $result['post_title'];
}
?>

答案 2 :(得分:0)

你的问题非常含糊,所以我会尽力而为:

SELECT * FROM posts LEFT JOIN comments ON posts.post_id = comments.post_id

这是您想要的查询(与您相同,但*代替“发帖。,评论。”。

当然,这将检索帖子中的所有行,即使他们没有任何评论。你需要这样做:

SELECT * FROM posts LEFT JOIN comments ON posts.post_id = comments.post_id WHERE posts.post_id= = <some_id>

仅获取特定帖子的评论。当然,这将是愚蠢的,因为它与刚刚做的一样:

SELECT * FROM comments WHERE post_id = <some_id>

如果您只想选择包含评论的帖子中的行,您必须执行以下操作:

SELECT * FROM posts INNER JOIN comments ON posts.post_id = comments.post_id

或者

SELECT * FROM posts NATURAL JOIN comments

(它们具有相同的效果)