我必须拥有具有 X、Y、Z 列的 XY 和 XZ 表。我可以像这样加入它们:
SELECT XY.*,XZ.Z
FROM XY
INNER JOIN XZ
ON XY.X = XZ.X
但是如果发生某种情况(例如 X = 0),我不仅想从 XZ 表中获取数据,还想从另一个具有 X、Z 列的查询(函数、表)中获取数据。我知道 UNION,但我不知道如何使用它并在这种情况下编写 IF 语句。我的意思是这样的(请原谅我这个抽象语法,我只想正确解释问题):
SELECT XY.*,XZ.Z
FROM XY
INNER JOIN IF(X = 0)XZ ELSE (XZ UNION SOME_TABLE)
ON XY.X = XZ.X