如何从表A中获取1行,从表B中获取多行

时间:2011-07-22 19:21:31

标签: mysql

我是mysql的新手,所以你必须和我一起裸露。

表A被命名为“users”,表B被命名为“comments”。我想从表A中选择字段“user_id”和“user_name”,并在表B中选择“date”,“comment”,“user_id”字段。

简而言之,我试图通过1个查询获取所有用户及其评论。可以将注释放在自己的数组中,因为下面会有多个注释,或者它只是1个注释,并且必须运行2个查询?

基本示例

user_id = 1
username = foo
评论[0] ['日期'] = 1234567890
评论[0] ['评论'] =“你好世界!”
评论[1] ['date'] = 1234567890
评论[1] ['评论'] =“MySQL n00b”

任何基本的例子都会很棒,所以我可以理解它。

由于

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

我们称之为JOIN。最好采取一些sql / mysql教程,否则你会迷路。

答案 2 :(得分: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);