2011-07-22 42 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教程或者你迷路了。

相关问题