我有一张用户和评论表:
users(id, name)
comments(id, user_id, content)
我正在寻找一个(有效的)SELECT
语句,它将只返回那些users
至少有一个comment
关联的行。
通常我可以轻松地执行 SQL,但目前我无法理解它。
这很简单
SELECT DISTINCT id, name
FROM users u
INNER JOIN comments c ON u.id = c.user_ID
INNER JOIN
查找链接数据的用户中的所有行comments
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)