2009-08-28 40 views
0

用戶可以擁有多個項目並且項目可以擁有多個客戶端。 如何從用戶所屬的項目中獲取所有唯一客戶端?從項目中檢索客戶用戶屬於

表: - 用戶 - 項目 - 客戶 - 項目客戶

SELECT client_id, client_name FROM clients.. ? JOINS, USING.. ?.. what? 

回答

0

首先,如果用戶有多個項目,你需要一個項目,用戶表。

鑑於這種情況,你可以得到你想要使用這兩種片SQL的東西:

select distinct c.id from 
clients c 
join projectclients pc on c.id=pc.clientid 
join projects p on pc.projectid=p.id 
join projectusers pu on p.id=pu.projectid 
join users u on u.id=pu.userid 
where u.id=3 

select distinct c.id from 
clients c join projectclients pc on c.id=pc.clientid 
where pc.projectid in 
(select projectid from 
users u join projectusers pu on u.id=pu.userid 
where u.id=3)