来自多个表的SQL语句

时间:2018-09-19 18:22:29

标签: mysql sql join

给出以下两个表:

Users table 
id (pk) 
name
avatar 

Comments table 
id (pk) 
id_pic (fk)
id_user (fk)
text 
date

如何创建一条SQL语句,返回ID = 7的Pics的所有信息?

重要提示:我需要来自评论(标识,文本,日期)和已写评论的用户(标识,名称,头像)的信息

谢谢!

编辑: 我尝试了此操作,但是当必须为2时,它将返回1行:

SELECT c.id, c.id_user, u.avatar, u.name, c.date, c.text 
FROM Comments c 
INNER JOIN Users u 
ON u.id=c.id_user AND c.id_pic=7;

修改2: 一些数据:

Users
id   name   avatar
1    joe    true
2    lee    false

Comments
id   id_pic   id_user  text         date
1    7        2        cool         2018-09-09
2    7        1        great        2018-09-10
3    10       1        ugly         2018-09-10

修改3: 当我这样做时,它可以正常工作:

SELECT c.id, c.id_user, c.date, c.text 
FROM Comments c 
INNER JOIN Users u
ON u.id=c.id_user AND c.id_pic=7;

但是它没有在行中显示我需要的信息(u.avatar和u.name):(

1 个答案:

答案 0 :(得分:2)

此查询对我有用。如果要获取头像和名称,则必须将其包括在SELECT语句中。

SELECT c.id, c.id_user, c.date, c.text, u.avatar, u.name 
FROM dbo.comments c
INNER JOIN dbo.users u ON u.id = c.id_user
WHERE c.id_pic = 7

希望这就是您想要的