2017-06-30 31 views
-1

私は3つのテーブルを持っていると仮定し、結果として3つのテーブルを繰り返し値とNOT NULLなしで結合したいとします。sqlの別の2つのテーブルと1つのテーブルを結合するには?

Table-1: EMP 
Id Name Client_Id 
1 abc c1 
2 xyz c2 
3 pqr c3 

表2:EMP_Account:

Id salary 
1  10,000 
2  20,000 
3  30,000 

表3:Client_Details。

Client_Id Client_Name 
c1    client_1 
c2    client_2 
c3    client_3 

最終結果:

Id Name Salary Client_Name 
1 abc  10,000  client_1 
2 xyz  20,000  client_2 
3 pqr  30,000  client_3 

私は成功の参加ではなく、左に参加し実行しようとしました。 誰かが私を助けたり、私たちがこれをどうやってできるかを提案することはできますか?

+2

あなたが試したものを追加してください – Jens

答えて

1
SELECT e.id, e.name, ea.salary, cd.client_name 
FROM emp e 
JOIN emp_account ea ON e.id = ea.id 
JOIN client_details cd ON cd.client_id = e.client_id 
1

あなたが複数回参加することができますが、あなたは何のクライアント情報、代替がなくても結果を返すようにしたい場合は、それぞれが

select t1.id, t1.name, t2.salary, t3.client_name 
from EMP t1 
inner join EMP_Account t2 
    on t1.id = t2.id 
inner join Client_Details t3 
    on t1.client_id = t3.client_id 

エイリアシングが

に役立つ独自のセクションでなければなりませんinnerleft

+0

NOT NULL値を使用し、反復値を使用しないで作業しますか? – Jay

+0

@Jay重複がある場合は、 'select distinct'を使います。そして、はい、 'not null'で動作します – JohnHC

+0

ありがとう、@ JohnHC – Jay

0
SELECT E.ID, E.NAME, EA.SALARY, CD.CLIENT_NAME FROM EMP E 
JOIN EMP_ACCOUNT EA ON EA.ID = E.ID 
JOIN CLIENT_DETAILS CD ON CD.CLIENT_ID = E.CLIENT_ID 
+1

ようこそスタックオーバーフロー!このコードスニペットをありがとうございます。すぐに役立つかもしれません。適切な説明は、なぜ*これが問題の良い解決策であるかを示すことによってその教育上の価値を大幅に改善し(// meta.stackexchange.com/q/114762)、将来の同様の、しかし、同一ではない質問。説明を追加するためにあなたの答えを[編集]し、どんな制限と前提が適用されるかを示してください。 –