2017-02-23 11 views
0

私は現在、2 SelectのクエリをmySQLに持っています。Combine 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"

どのように私は国の名前が含まれているであろう(、国、groupUpdateIDと新しい列の名前の検索結果をプロバイダ名を表示することが可能だということを、このようなこれらの2 queriesを組み合わせることができます同じGroupUpdateIDを共有していますか?)

queryはどれも同じ方法で生産する方法が分かりません。両方が異なるWHERE基準を持っているため、私は立ち往生しています。

+1

これが回答されていますここで:http://stackoverflow.com/questions/542705/how-do-i-combine-2-select-statements-into-one –

答えて

0

(すなわちGROUP BYを使用)などGroupUpdateIDあたりの国のリストを取得するように、あなたの2番目のクエリを変更します。

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

素晴らしい@トーレステンケットナー、真剣に大きな助けになってきました。私はちょっと微調整しましたが、相関サブクエリメソッドを採用しました!ありがとうございました! –

関連する問題