我有3个表:WAS
,USER
和连接表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/