Mysql 具有3个表的多对多查询
我有3个表:WAS、USER和连接表WAS\U USER。我希望实现的是从表WAS中获取所有行,如果有许多用户使用相同的WAS,我希望每个WAS都有一行。 例如:Mysql 具有3个表的多对多查询,mysql,sql,join,left-join,Mysql,Sql,Join,Left Join,我有3个表:WAS、USER和连接表WAS\U USER。我希望实现的是从表WAS中获取所有行,如果有许多用户使用相同的WAS,我希望每个WAS都有一行。 例如: WAS: id | name 1 | 'was1' 2 | 'was2' USER: id | name 1 | 'user1' 2 | 'user2' WAS_USER: userId | wasId 1 | 1 2 | 1 所
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中的唯一行,我需要的是3个表上的某种左连接。好的,以下是对我有效的方法:
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
但我不知道效率如何