我这里有一个复杂的MYSQL
查询问题。我尽力解释我的问题。
我有4张桌子。 mid是表之间的外键。 table4不是必须的表源。但是我喜欢它返回所有行,即使table4没有匹配数据。所以我写了一个查询脚本如下。
我不确定是否是编写此类查询脚本的逻辑方式,但我知道语法错误。
SELECT *
FROM table1, table2, table3,
(SELECT xx
FROM table4
RIGHT JOIN table1 ON table1.mid = table4.mid)
WHERE table1.mid = table2.mid
AND table1.mid = table3.mid
AND tt = 'a'
AND type = 1
GROUP BY table1.mid
ORDER BY xx DESC, table1.name ASC;
答案 0 :(得分:0)
你必须在table1和amp;之间进行左连接。表4:
SELECT *
FROM table1
JOIN table2 ON table1.mid = table2.mid
JOIN table3 ON table1.mid = table3.mid
LEFT JOIN table4 ON table1.mid = table4.mid
WHERE tt = 'a'
AND type = 1
GROUP BY table1.mid
ORDER BY xx DESC, table1.name ASC;