DEVELOPER、MANAGER、およびPROJECTの3 つのテーブルがあります。
create table DEVELOPER(id int(4), lastname varchar(40), project_id int(4));
create table MANAGER(id int(4), lastname varchar(40), project_id int(4));
create table PROJECT(id int(4), name varchar(40));
PROJECT と DEVELOPER の関係は 1 対多、PROJECT と MANAGER の関係は 1 対 1 です。
データベースに保存されているすべての姓は一意です。マネージャーは、同じプロジェクトで同時に開発者になることができます。(この場合、彼のデータは 2 つのテーブルに格納されています)。
特定のプロジェクトのすべての開発者とマネージャーのリストをデータベースから次の形式で取得したいと考えています。
ID | 姓| isManager
次のクエリに適していると思います。
SELECT id, lastname, false AS isManager FROM developer WHERE project_id = 314
UNION
SELECT id, lastname true AS isManager FROM manager WHERE project_id = 314
しかし、マネージャーが特定のプロジェクトの開発者でもある場合、マネージャーのデータを 2 行にしたくありません。プロパティ isManager が true である行を残したいと思います。この問題を解決するための適切なクエリを提案してください!