我有3个表:WASUSER和连接表WAS_USER。我要实现的事情是从表WAS中获取所有行,如果同一WAS的用户很多,我希望每一行都有一行。
例如:

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

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

WAS_USER:
    userId | wasId
    1      | 1
    2      | 1


所以在查询之后,我需要得到这个:

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


3个表之间的普通联接将只提供WAS中的行,我需要的是3个表上的某种left join

最佳答案

好的,这对我有用:

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


不过不知道效率...

关于mysql - 用3个表进行多对多查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22953661/

10-10 10:42