mysql选择多个并连接查询
我这里有一个复杂的mysql选择多个并连接查询,mysql,sql,select,join,Mysql,Sql,Select,Join,我这里有一个复杂的MYSQL查询问题。我尽力解释我的问题 我有四张桌子。mid是表之间的外键。表4不是强制的表源。然而,我喜欢它返回所有的行,即使表4中没有匹配的数据。因此,我编写了一个查询脚本,如下所示 我不确定编写这样的查询脚本是否合乎逻辑,但我知道语法是错误的 SELECT * FROM table1, table2, table3, (SELECT xx FROM table4 RIGHT JOIN table1 ON table1.mid = table
MYSQL
查询问题。我尽力解释我的问题
我有四张桌子。mid是表之间的外键。表4不是强制的表源。然而,我喜欢它返回所有的行,即使表4中没有匹配的数据。因此,我编写了一个查询脚本,如下所示
我不确定编写这样的查询脚本是否合乎逻辑,但我知道语法是错误的
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;
您必须在表1和表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;
这工作很有魅力。谢谢专家!!:)但这是唯一的方法吗?对于你的需要,这是一种方法(标准且最简单的方法)。当然,还有其他一些方法,当您使用
左连接时,它们更复杂但更无趣。