2016-04-22 64 views
-1

我有5个表像下面加入多个表

user 
id  name  
11  rajesh 
12  kumar 

group 
id  name 
21  sales 
22  dev 

domain 
id  name  
51  network   
52  database 

user_group 
user_id  group_id  
11   21   

user_domain 
user_id  domain_id  
12   51 

我需要以检索谁是ATLEAST一组或域的成员的所有用户。这是我用来连接两个表的查询。

select user.name from user join user_domain on user.id=user_domain.user_id 

我能够加入表格用户和组。但随着我需要加入用户和域也。当我尝试像下面那样得到零结果。

select user.name from user 
left join user_group on user.id=user_group.user_id 
join user_domain on user.id=user_domain.user_id 

如果我更改为左连接像下面,我得到的所有用户。

select user.name from user 
left join user_group on user.id=group.user_id 
left join user_domain on user.id=user_domain.user_id 

请告知

+1

发布您的SQL'哪些任务缺失'。也许它只需要一些调整。 – Johan

+0

建议:删除表格与其无关:组,产品 - 似乎没有关系 –

+0

@ElzoValugi删除表词 – Rajesh

回答

1

这不就够了吗?

SELECT `id` 
FROM `user` JOIN `user_group` ON `user`.`id` = `user_group`.`user_id` 
UNION 
SELECT `id` 
FROM `user` JOIN `user_domain` ON `user`.`id` = `user_domain`.`user_id`;