2017-09-13 13 views
1

私は2つの異なる選択肢から1つのテーブル出力を作ろうとしています。 最初の1:2つのテーブルの異なる条件

select NAME 
    from PROVIDER_GROUP 
where ID=(select GROUP_ID 
      from CUSTOMER_GROUP 
      where CUSTOMER_ID=(select CUSTOMER_ID 
           from CUSTOMER 
           where PHONE = 'MyNumber123')); 

select PHONE 
    from CUSTOMER 
where PHONE = "MyNumber123" 

TABLES:期待

┌─────────────────────┐  ┌─────────────────────┐  ┌─────────────────────┐ 
│ PROVIDER_GROUP │  │ CUSTOMER_GROUP │  │  Customer  │ 
├─────────────────────┤  ├─────────────────────┤  ├─────────────────────┤ 
│  NAME   │  │  GROUP_ID  │  │  CUSTOMER_ID  │ 
│  GROUP_ID  │  │  CUSTOMER_ID  │  │  PHONE  │ 
└─────────────────────┘  └─────────────────────┘  └─────────────────────┘ 

  ┌─────────────────────┬─────────────────────┐ 
      │  PHONE   │  NAME   │ 
      ├─────────────────────┼─────────────────────┤ 
      │ +12345678910  │ NameProviderGroup1 │ 
      │ +12345678910  │ NameProviderGroup2 │ 
      │ +12345678910  │ NameProviderGroup3 │ 
      └─────────────────────┴─────────────────────┘ 
+0

サブクエリのように入れ子にする必要はありません。代わりに結合を使用してください。また、二重ではなく、リテラルに対して一重引用符を使用してください。 – APC

+0

"データモデル"にはSUBSCRIBERは含まれていないので、2つのクエリを結合する方法を示唆するのは難しいです。加入者は顧客に関連していますか? – APC

+0

@Crcencia、 'PROVIDER_GROUP'はどのようにして期待通りの結果になったテーブル名になったのですか? 'PHONE'と' GROUP_ID'を選択していますか? – saitejalakkimsetty

答えて

2

私は、私はあなたが今求めているかを理解だと思います。これがトリックであれば教えてください。

SELECT C.PHONE 
    ,PG.NAME 
FROM PROVIDER_GROUP PG 
JOIN CUSTOMER_GROUP CG ON CG.GROUP_ID = PG.GROUP_ID 
JOIN CUSTOMER C ON C.CUSTOMER_ID = CG.CUSTOMER_ID 
WHERE C.PHONE = 'MyNumber123' 

あなたはCUSTOMER_GROUPテーブルに取り付けた顧客の電話番号を持っていないプロバイダ・グループを表示するかどうかに応じて、LEFT JOINを使用する必要があります。

テーブルがCUSTOMERPROVIDER_GROUPテーブルの中間の人ですが、CUSTOMER_GROUPテーブルです。これらの2つのテーブルの間の関係はmany-to-manyです。接合テーブルCUSTOMER_GROUPは、2つの間の関係を定義します。

また、あなたのテーブルダイアグラムは非常にいいです。

+0

UNIONでグループ名を1列にして印刷します。それは頭痛の原因です。 – Cravenica

+0

@Kimmyshor私はあなたの期待する結果が何であるか混乱しています。それは底のテーブルですか?もしそうなら、 'PROVIDER_GROUP'列は' PROVIDER_GROUP'から 'NAME'ですか? – justiceorjustus

+0

はい、申し訳ありませんが、xDを言及することを忘れていました – Cravenica

関連する問題