选择通过连接关联其他元素的所有行

时间:2013-03-08 13:18:53

标签: mysql sql join

我有一个用户和评论表:

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

我正在寻找一个(高效的)SELECT语句,它只会返回那些至少有一个users与之关联的comment行。

通常我可以轻松地进行SQL,但目前我无法理解它。

3 个答案:

答案 0 :(得分:2)

就像

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

INNER JOIN查找用户在comments

中链接数据的所有行

答案 1 :(得分:1)

INNER JOIN将完成这项工作。在select语句中添加DISTINCT的原因是因为它只返回唯一的用户记录,并且用户可能在comments表上有多条记录。

SELECT  DISTINCT a.*
FROM    users a
        INNER JOIN comments b
            ON a.id = b.user_ID

要进一步了解联接,请访问以下链接:

答案 2 :(得分:1)

SELECT  u.*
FROM    users u
where u.id in (select id from comments where id=u.id)