如何理解这个查询?

How to understand this query?

SELECT DISTINCT
    ...
    ...
    ...
FROM Reviews Rev
    INNER JOIN Reviews SubRev ON Subrev.W_ID=Rev.ID
WHERE Rev.Status='Approved'

这是我一天来一直试图理解的长查询的一小部分。连接发生了什么?评论 table 似乎以不同的别名与自身相连。为什么这样做?它实现了什么?此外,评论 table 的 ID 字段对于仍被选择和返回的条目为空。这是正确的,但我不明白如果 W_ID 字段不为空,那怎么会发生。

它允许您将 table 中的一行连接到 table 中的另一行。

我都看到过这样做,并且自己也使用过它,以防您可能在这些行之间有关系。

Real-world 示例:

  • 记录的旧版本和新版本
  • 某种层级关系(例如,如果 table 包含人的记录,则可以记录某人是其他人的 parent)。可能还有很多其他可能的用例。

SQL 允许您创建一个外键,该外键在同一 table.

中的两个不同列之间关联