选择具有通过多个相关联的其他元素的所有行加入

选择具有通过多个相关联的其他元素的所有行加入

问题描述:

我有用户和评论的表:选择具有通过多个相关联的其他元素的所有行加入

users(id, name) 
comments(id, user_id, content) 

我要找的(有效)SELECT声明,将只返回users -rows具有在至少有一个comment与它们相关联。

通常我可以很容易地执行SQ​​L,但目前我无法摆脱困境。

就这么简单

SELECT DISTINCT id, name 
FROM users u 
INNER JOIN comments c ON u.id = c.user_ID 

INNER JOIN发现所有行在中链接数据的用户

+0

这不就是一个正常的连接,也没有任何意见提取用户吗? – Lanbo 2013-03-08 13:34:19

+1

一个'INNER JOIN'只返回在这两个表中存在用户ID的行。 – JodyT 2013-03-08 13:41:07

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)