1
我正在使用「解決」活動網絡的算法 - 它是項目管理中的課程。該算法在紙上工作,但爲了解決它與計算機,我需要一個聰明的查詢,在自聯表中找到不存在的元組。自連表中不存在的元組
假設活動如下: A轉到B,A轉到C,B轉到D,C轉到D 我正在使用的表格(稱爲'CPM')是這樣填充的:
+----+----------+--------+---------+
| ID | Fromnode | Tonode | Counter |
+----+----------+--------+---------+
| 1 | A | B | 0 |
+----+----------+--------+---------+
| 2 | A | C | 0 |
+----+----------+--------+---------+
| 3 | B | D | 0 |
+----+----------+--------+---------+
| 4 | C | D | 0 |
+----+----------+--------+---------+
我想寫一個查詢返回所有'fromnodes'沒有對應的'tonodes'。這就是我寫的
select id, fromnode
from cpm
where counter = 0
and not exists (select 'X'
from cpm cpm1
where tonode = cmp1.fromnode)
但這是返回所有四個元組,而不僅僅是前兩個。
使用「不存在」的查詢很難理解,因爲自我連接只會讓事情變得更糟。什麼應該是查詢?順便說一下,我正在使用火鳥,但我不認爲這是問題所在。
TIA, No'am
我不知道是否接受你的答案,因爲它給出了錯誤的結果,但至少說明了正確的結果是什麼(或者我誤導了你)。您的查詢返回'D',而不是'A'。這是正確的查詢 - – 2010-11-25 14:08:34