选择具有通过多个相关联的其他元素的所有行加入
问题描述:
我有用户和评论的表:选择具有通过多个相关联的其他元素的所有行加入
users(id, name)
comments(id, user_id, content)
我要找的(有效)SELECT
声明,将只返回users
-rows具有在至少有一个comment
与它们相关联。
通常我可以很容易地执行SQL,但目前我无法摆脱困境。
答
就这么简单
SELECT DISTINCT id, name
FROM users u
INNER JOIN comments c ON u.id = c.user_ID
INNER JOIN
发现所有行在中链接数据的用户
答
INNER JOIN
将完成这项工作。之所以在select语句中添加DISTINCT
是因为它只会返回唯一的用户记录,并且用户可能在comments
表中有多条记录。
SELECT DISTINCT a.*
FROM users a
INNER JOIN comments b
ON a.id = b.user_ID
为了进一步获得更多的知识有关加入,请访问以下链接:
答
SELECT u.*
FROM users u
where u.id in (select id from comments where id=u.id)
这不就是一个正常的连接,也没有任何意见提取用户吗? – Lanbo 2013-03-08 13:34:19
一个'INNER JOIN'只返回在这两个表中存在用户ID的行。 – JodyT 2013-03-08 13:41:07