我想對MySQL進行復合查詢。如果union的第一部分爲空,我想返回null;否則,我想返回聯盟的結果。例如:如果第一部分爲空或返回結果,複合MySQL查詢返回null
IF(select * (select * from t1) as result, result UNION (select * from t2), "");
我的代碼行不起作用。我得到以下錯誤:
Operand should contain 14 column(s)
有沒有人有任何想法如何做到這一點正確?
感謝下面的第一個答覆,但它看起來過於昂貴:
(SELECT * FROM t1)
UNION
(SELECT * FROM t2
WHERE EXISTS
(SELECT * FROM t1)
)
我的理由是T1其實是一堆被聯合聲明本身。有沒有辦法使用類似於別名的東西?下面的示例失敗,因爲別名「result」不是通過UNION關鍵字執行的。
SELECT * FROM(大化合物選擇語句)AS結果 UNION (SELECT * FROM T2 WHERE EXISTS (SELECT 1 FROM結果) )
感謝。
如果顯示整個查詢可能會有所幫助。 – FrustratedWithFormsDesigner
_你是什麼意思_「工會的第一部分是空的_ _?你的意思是該查詢返回零行? – Marco