[英]Many to many query with 3 tables
我有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
不过不知道效率...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.