2014-04-09 60 views
0

我有3个表:WAS,USER和连接表WAS_USER。我想实现的目标是获取表WAS中的所有行,并且如果有许多用户使用相同的WAS,我希望每行都有一行。 例如:多对多查询3个表

WAS: 
    id | name 
    1 | 'was1' 
    2 | 'was2' 

USER: 
    id | name 
    1 | 'user1' 
    2 | 'user2' 

WAS_USER: 
    userId | wasId 
    1  | 1 
    2  | 1 

所以queering后,我需要得到这个:

wasrId | userId | wasName | userName 
1  | 1  | 'was1' | 'user1' 
1  | 2  | 'was1' | 'user2' 
1  | 2  | 'was1' | 'user2' 

普通加入的3个表将从WAS给我唯一的行,我需要的是对某种left join 3桌。

回答

0

好吧,这里是我工作:

SELECT * 
FROM 
(SELECT * FROM WAS W LEFT JOIN WAS_USER WU ON W.id=WU.wasID) TMP LEFT JOIN USER U ON TMP.userId=U.userId 

不知道有效率虽然...