1

我有一张用户和评论表:

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

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

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

4

3 回答 3

2

这很简单

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

INNER JOIN查找链接数据的用户中的所有行comments

于 2013-03-08T13:21:18.967 回答
1

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

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

要进一步了解有关联接的更多信息,请访问以下链接:

于 2013-03-08T13:20:04.280 回答
1
SELECT  u.*
FROM    users u
where u.id in (select id from comments where id=u.id)
于 2013-03-08T13:21:29.097 回答