私は以下の表を持っている:このクエリを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))
プロジェクトは、複数のアクションで構成することができ、アクションはどれか一つのプロジェクトに所属することができます。したがって、枢機卿は(プロジェクト)0..1 < - > *(アクション)です。
どのようにすれば、すべてのアクションが完了したプロジェクトだけを取得できますか?
は、私はこれを試してみましたが、それはすでに私にその行動の一つだけが終了した場合にプロジェクトを与える:
SELECT pid FROM project WHERE pid IN (SELECT DISTINCT pid FROM project_action WHERE aid IN (SELECT aid FROM action WHERE action.finished = true));
ありがとう!私は2年ほどそれを必要としなかったので、その方法では 'NOT EXISTS'を使うことを忘れてしまった。 – LPrc