2017-02-23 37 views
0

我目前在mySQL上有2個Select查詢。組合2選擇不同條件下的查詢

  • SELECT Provider Name, Country, GroupUpdateID FROM provider WHERE Country="Vietnam" AND Provider Name="Provider A"
  • SELECT GROUP_CONCAT(DISTINCT Country) AS result FROM provider WHERE GroupUpdateID="Group1"

我如何可以結合這2 queries,使得我能夠顯示供應商的名稱,國家,groupUpdateID和一個名爲結果新列(其中將包含國名共享相同的GroupUpdateID)?

我被卡住了,因爲我不知道如何生產一個query,因爲他們都有不同的WHERE條件。

+1

這已回答在這裏:http://stackoverflow.com/questions/542705/how-do-i-combine-2-select-statements-into-one –

回答

0

修改你的第二個查詢,例如,讓每GroupUpdateID國家列表(即使用GROUP BY):

SELECT 
    p.ProviderName, 
    p.Country, 
    p.GroupUpdateID, 
    c.result 
FROM provider p 
JOIN 
(
    SELECT GroupUpdateID, GROUP_CONCAT(DISTINCT Country) AS result 
    FROM provider 
    GROUP BY GroupUpdateID 
) c ON c.GroupUpdateID = p.GroupUpdateID 
WHERE p.Country = 'Vietnam' 
AND p.ProviderName = 'Provider A'; 

還是SELECT子句中使用相關子查詢:

SELECT 
    ProviderName, 
    Country, 
    GroupUpdateID, 
    (
    SELECT GROUP_CONCAT(DISTINCT c.Country) 
    FROM provider c 
    WHERE c.GroupUpdateID = p.GroupUpdateID 
) AS result 
FROM provider p 
WHERE Country = 'Vietnam' 
AND ProviderName = 'Provider A'; 
+0

偉大的@Thorsten凱特納,你認真地有很大的幫助。我稍微調整了一下,然而採用了你的相關子查詢方法!謝謝! –