2011-07-18 39 views
2

我想創建一個MyQSL查詢類似如何形成這個MySQL查詢?

SELECT city, state, country FROM location 
UNION 
SELECT 'Chicago','Illinois', 'USA' IF 'Chicago' NOT IN (SELECT city FROM location); 

基本上,如果「芝加哥」不返回的結果,我想將其追加到的結果。問題是,查詢需要一個FROM表......我使用虛擬表嗎,還是我這樣做都是錯誤的?

+0

你做錯了。你可以粘貼表格結構嗎? –

回答

5

只寫第二個SELECT沒有條件,並讓UNION爲你做的工作。 UNION將刪除結果集中的重複項,因此在第二個查詢中重複「芝加哥」沒有任何壞處。如果「芝加哥」也出現在您的第一個SELECT中,則UNION將刪除您的第二個查詢創建的副本。

SELECT city, state, country FROM location 
UNION 
SELECT 'Chicago','Illinois', 'USA' 
+0

匿名downvoter會照顧解釋他們的反對意見嗎? –

+0

(我不是downvoter)這不正確的工作,因爲如果芝加哥已經存在於第一個select語句中,它將顯示2次 - 第一次從第一個select語句中,一次從第二個select語句中。即使我使用UNION DISTINCT,它也會這樣做。 – Chris

+0

@Chris:如果州和國家列包含兩個城市「芝加哥」列表的不同值,我可以看到這不起作用的唯一方法。是這樣嗎? –