有没有办法指定一个像这样的
的mysql查询SELECT * FROM a LEFT JOIN b ON (a.xyz = b.xyz OR a.xyr = b.xyr);
因此当ON语句中的任何LEFT JOIN条件匹配时返回行...
如果是的话,这类查询的语法是什么?
答案 0 :(得分:1)
根据docs,ON
子句是条件表达式。所以是,您可以使用这样的表达式。事实上,你所拥有的应该是有用的。
但是,根据您的数据和联接类型,它可能会产生一些不直观的结果。
答案 1 :(得分:1)
将select语句拆分为两部分并使用UNION。
SELECT * FROM a LEFT JOIN b on a.xyz = b.xyz
UNION
SELECT * FROM a LEFT JOIN b on a.xyr = b.xyr
如果MySQL中的UNION与SQL Server中的UNION类似,它应该生成一个没有重复行的集合。否则,您可能需要使用DISTINCT。