是有3個表DEVELOPER,MANAGER和項目:SQL聯盟沒有一個特定的字段重複的值
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));
項目和開發人員之間的relantionship是一到多, PROJECT和MANAGER之間的關係是一對一。
存儲在數據庫中的所有姓氏都是唯一的。經理可以同時擔任同一項目的開發人員。 (在這種情況下他的數據存儲在兩個表中)。
我想在下面的表格從我的數據庫收到的所有開發項目的具體名單和經理:
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
但我不希望有兩排經理人的數據,如果他也是具體的項目開發!我想離開屬性isManager爲真的行。請建議我正確的查詢來解決這個問題!
這兩個表之間的任何關係 – 2013-05-11 11:14:52
'developer'和'manager'不應該是兩個不同的表。你應該有一個表'person'和一個鏈接表,說明這個人在一個項目中的角色,比如'person(id,firstname,lastname)'和'project_member(person_id,project_id,project_role)' – 2013-05-11 11:21:51
@a_horse_with_no_name,I絕對同意你的看法。但在我的情況下,我必須使用這個數據庫結構。 – Alex 2013-05-11 12:07:37