2011-07-26 36 views
0

這是一個houre中的三十個帖子。所以我很抱歉!在一個查詢中獲取多個表格

但我沒有得到我想要的!

我會盡量解釋更多..

我有兩個表..

帖子< - 我的(所有網站的帖子) 評論< - 我的(所有網站評論)

我想顯示所有信息和評論在這一個頁面

買入(1個查詢)

我有職位表(100職位) 和我有意見表(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 ! 
} 

以上,IAM試圖打印評論標題

我上面說我只有(20條評論)!

代碼輸出(120個評論有重複!)

120是總的兩個表的!

/*我想只能打印20個註釋和100後(在一個查詢)

我如何能做到這一點! ?

到底我對這個問題更

抱歉,但我真的需要幫助!我的網站已關閉

+0

你有「類別」,「設置」和「文章」,什麼是「文章」? –

+0

文章表< - 其中包含我的文章 –

+3

請不要轉貼相同的問題。你可以編輯你以前的問題。如果您對同一問題有進一步的疑問。 – Starx

回答

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 

(它們具有相同的效果)

+0

反正我應該做兩個querys! 我是工作的罰款有兩個querys但我決定短它們在一個查詢!但它似乎是一個壞主意,非常感謝你的幫助 –

0

我假設你需要把所有的帖子(和帖子你的意思是文章)

是的,你可以使用一個查詢:

SELECT * FROM articles; 

要獲得所有文章

+0

是的,我知道!, 而且我希望得到所有categori es和所有設置! 我想用一個查詢來獲取所有三個表! –

+0

沒有關於你的表上的字段的更多信息,我會建議你去這裏的JOIN的MySQL的文檔 - > http://dev.mysql.com/doc/refman/5.0/en/join.html希望它可以是幫助:D – ZaQ

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