2013-12-11 51 views
0

如果我有一個由一些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

這是有點難以分辨這是否是你要求的,但如果你想在沒有匹配行的dagr中找到一行,你可以嘗試一個左連接。這可能是你的目的有點晚了,但谷歌可能會找到一些用途。

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