相同的表关系sql查询

时间:2018-04-07 07:58:44

标签: mysql sql

所以我有一张这样的桌子:

ID | article | comment | content

所以文章列是相对于另一个名为articles的表而注释是相对于当前表的ID,但我想要做的是获取当前文章的所有注释以及1个查询中的注释,是吗可能的?

以下是示例数据

enter image description here

它应该返回前两行,因为它们有article = 33,最后一行是因为它有comment = 2,这是id行之一的article = 33

我之前尝试过这样的事情,如果它有助于理解我的问题

SELECT * FROM comments WHERE article=:article OR comment=comments.id

3 个答案:

答案 0 :(得分:0)

SELECT * 来自评论 WHERE文章IN(从评论中选择*,其中comment = comments.id);

答案 1 :(得分:0)

您可以按照之前提供的查询进行内部联接并在一个地方获取所有结果。

查询-1:

SELECT comments.* FROM comments 
WHERE comments.article = 'article_id'

查询-2:

SELECT comments.* FROM comments 
WHERE comments.comment = 'comment_id'

最终结果是这两个查询的总和!

希望这能回答你的问题!

答案 2 :(得分:0)

使用两个查询的并集。一个获得所有文章,另一个获得相关评论:

SELECT *
FROM comments
WHERE article = :article
UNION ALL
SELECT c1.*
FROM comments AS c1
JOIN comments AS c2 ON c1.comment = c2.id
WHERE c2.article = :article