我有以下表格:如何在MySQL中編寫此查詢?
project(pid integer primary key, title varchar(30), finished boolean)
action(aid integer primary key, title varchar(30), finished boolean)
project_action(pid integer, aid integer, primary key(pid, aid))
一個項目可以包含多個動作和動作只能屬於無或一個項目。因此,cardinatlity是(項目)0..1 < - > *(action)。
我怎樣才能得到剛完成的項目?
我想這一點,但是這已經給了我,如果只是它的一個動作被完成了一個項目:
SELECT pid FROM project WHERE pid IN (SELECT DISTINCT pid FROM project_action WHERE aid IN (SELECT aid FROM action WHERE action.finished = true));
耶謝謝!我忘記了以這種方式使用「NOT EXISTS」,因爲我在兩年內不需要它。 – LPrc