2011-07-22 41 views
0

我是mysql新手,因此您將不得不裸露在我身邊。如何從表A獲取1行並從表B獲得多行

表A被命名爲「users」,表B被命名爲「comments」。我想從表A中選擇字段「user_id」和「user_name」,並在表B中選擇「註釋」,「用戶ID」字段。有1個查詢。這些評論可以放在自己的數組中,因爲下面會有多條評論,或者它只是1條評論,而且必須運行2條查詢?

基本示例

USER_ID = 1
用戶名= foo的
評論[0] [ '日期'] = 1234567890條
評論[0] [ '評論'] = 「世界,你好!」
評論[1] [ '日期'] = 1234567890條
評論[1] [ '評論'] = 「MySQL的的n00b」

任何基本的例子將是巨大的,所以我可以讓我的頭輪它。

感謝

+0

運行查詢時給出了什麼?你有'user_id'給出,或任何其他細節?什麼是服務器端語言,PHP?目前你怎麼做,你到目前爲止還嘗試過什麼? – Shef

回答

1

這將是一個通用查詢,選擇的user_id = 1

SELECT u.user_id, u.user_name, c.`date`, c.`comment` 
FROM comments c 
INNER JOIN users u ON c.user_id = u.user_id 
WHERE c.user_id = 1 
+0

對不起,我不清楚,但我將如何提出所有用戶和評論,我會刪除WHERE子句?謝謝 – Joe

+0

@Joe:是的,你只需刪除'WHERE'子句。 – Shef

0

假設user_id是1,這裏所有的評論是代碼,如果你想要一個關聯數組所有用戶的評論。只有一個查詢,使用JOIN語句。

$res = mysql_query("SELECT users.user_id as uid, users.user_name as username, comments.date, comments.comment, comments.user_id as cid FROM `users` LEFT JOIN comments on uid=cid WHERE cid = 1"); 

$i = 0; 
while($arr = mysql_fetch_assoc($res)) 
{ 
    $comments[$i]['date'] = $arr['date']; 
    $comments[$i]['comment'] = $arr['comment']; 
    $i++; 
} 

//var_dump($comments); 
+0

感謝您的回覆。是否有可能每個用戶只有1行和所有評論,或者我必須自己完成結果,只有1個用戶和評論。 – Joe

1

我們稱之爲加入。最好採取一些SQL/MySQL教程或者你迷路了。

相關問題