我有一个很大的疑问,但这一切归结为:
SELECT * FROM user
LEFT JOIN tableA ON tableA.user_id = user.id
JOIN tableB ON tableB.a_id = tableA.id
现在,我得到的结果太少了。如果用户与(tableA x tableB)的组合不存在,我仍然想要用户。所以语法错误,我想要的是这样的:
SELECT * FROM user
LEFT JOIN (tableA ON tableA.user_id = user.id
JOIN tableB ON tableB.a_id = tableA.id)
是可能的,也许没有RIGHT JOINS?
当然,我不想将第二个JOIN更改为LEFT JOIN,因为这会产生太多结果。
答案 0 :(得分:1)
你可以试试这个:
SELECT * FROM user
LEFT JOIN (SELECT * FROM tableA
JOIN tableB ON tableB.a_id = tableA.id) t
ON t.user_id = user.id
如果存在子查询,则需要在子查询中选择不同的列。