MySQL查询 - 计算不引用自己的记录数

时间:2011-11-14 11:38:30

标签: mysql sql self-reference

我仍然试图利用我对MySQL的有限知识来帮助工作中的团队,就像我的last question一样。

Warehouse表有一个名为nearest的外键,它与另一个WarehouseID相关。什么查询生成未在任何其他Warehouse外键中引用的Warehouse记录列表?

所以在:

上运行查询
ID    NEAREST
1     3
2     3
3     2
4     NULL

会回来:

ID
1
4

这似乎不是一个非常有用的查询,但我一直在尝试学习LEFT OUTER JOIN(我相当确定我需要),如果我可以管理这个查询,我可以轻松地将它应用于其他任务我在这里解释有点困难。

我希望这很清楚!

2 个答案:

答案 0 :(得分:1)

SELECT ID
FROM YourTable t1
LEFT JOIN YourTable t2 on t1.ID = T2.Nearest
WHERE t2.ID is null

答案 1 :(得分:0)

另一种方式:

SELECT *
FROM YourTable
WHERE ID NOT IN (SELECT DISTINCT NEAREST
                 FROM YourTable);