我想創建一個MyQSL查詢類似如何形成這個MySQL查詢?
SELECT city, state, country FROM location
UNION
SELECT 'Chicago','Illinois', 'USA' IF 'Chicago' NOT IN (SELECT city FROM location);
基本上,如果「芝加哥」不返回的結果,我想將其追加到的結果。問題是,查詢需要一個FROM
表......我使用虛擬表嗎,還是我這樣做都是錯誤的?
我想創建一個MyQSL查詢類似如何形成這個MySQL查詢?
SELECT city, state, country FROM location
UNION
SELECT 'Chicago','Illinois', 'USA' IF 'Chicago' NOT IN (SELECT city FROM location);
基本上,如果「芝加哥」不返回的結果,我想將其追加到的結果。問題是,查詢需要一個FROM
表......我使用虛擬表嗎,還是我這樣做都是錯誤的?
只寫第二個SELECT
沒有條件,並讓UNION
爲你做的工作。 UNION
將刪除結果集中的重複項,因此在第二個查詢中重複「芝加哥」沒有任何壞處。如果「芝加哥」也出現在您的第一個SELECT
中,則UNION
將刪除您的第二個查詢創建的副本。
SELECT city, state, country FROM location
UNION
SELECT 'Chicago','Illinois', 'USA'
匿名downvoter會照顧解釋他們的反對意見嗎? –
(我不是downvoter)這不正確的工作,因爲如果芝加哥已經存在於第一個select語句中,它將顯示2次 - 第一次從第一個select語句中,一次從第二個select語句中。即使我使用UNION DISTINCT,它也會這樣做。 – Chris
@Chris:如果州和國家列包含兩個城市「芝加哥」列表的不同值,我可以看到這不起作用的唯一方法。是這樣嗎? –
你做錯了。你可以粘貼表格結構嗎? –