Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 具有3个表的多对多查询_Mysql_Sql_Join_Left Join - Fatal编程技术网

Mysql 具有3个表的多对多查询

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 所

我有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
所以在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
但我不知道效率如何