如果我有一个由GUID
标记的简单表,那么(假设它只有这两列):
GUID
| parentGUID
如何找到无菌节点(或行),以便没有孩子将parentGUID
作为其GUID
。假设“没有孩子”只是标记为空。
这是我最初的尝试:
SELECT *
FROM dagr d1, dagr d2
WHERE d1.parentGUID = ''
AND d2.parentGUID != ''
AND d1.guid != d2.parentGUID
AND d1.guid != d2.guid
我的思考过程:将孤儿列表(即没有父母的行)与非孤儿(即有父母的行)进行比较。但老实说,这可能毫无意义。
答案 0 :(得分:0)
这有点难以判断这是否是您所要求的,但如果您想在dagr中找到没有匹配行的行,您可以尝试LEFT JOIN。对于你的目的来说可能有点晚了,但是谷歌可能会发现这一点。
SELECT d1.*
FROM dagr d1
LEFT JOIN dagr d2
ON d1.guid = d2.parentGUIDIS
WHERE d2.parentGUIDIS NULL
请参阅LEFT JOIN http://www.tizag.com/mysqlTutorial/mysqlleftjoin.php