2016-05-19 12 views
-1

私は2つのテーブルは次のようにそれは聞かせてありますjoinを使って1つの行からデータを取得する方法?

表1

id  name  address phone 
    1  Nirdosh Shrestha 984901 
    2  krishna hora  984902 
    7  birami pokhara 984903 

表2

id  weight destination age 
    1  52  balkhu  32 
    2  53  hanger  35 
    2  65  fursad  35 
    3  70  Ktm   10 

を私はこのような結果テーブルたい:EXPECTED

を結果表

id  name  address phone id weight destination age 
    1  Nirdosh Shrestha 984901 1 52  balkhu  32 
    2  krishna hora  984902 2 53  hanger  35 
    2  krishna hora  984902 2 65  fursad  35 

私が試したとSQLクエリは次のとおりです。

select table1.*,table2.* 
from table1 LEFT JOIN table2 
ON table1.id = table2.id; 

しかし、私のクエリが期待される結果を与えることはありません。

+2

「元気ではない」とは別に、問題は特に有用な説明ではありません。しかし、もしあなたが7または3を望んでいなければ、それはINNER JOINです。 – Strawberry

+1

ええ、あなたは明らかに何らかの出力を得ていました。 – Kevin

答えて

3

まあ、「うまくいかない」というのはあまり明確ではありません。あなたのサンプルでは、​​一致するレコードだけを保存したいと思いますか?

この場合はINNER JOIN次のようになります。

select t1.*,t2.* 
from table1 t1 
JOIN table2 t2 
ON table1.id = table2.id; 
+0

私はTable2のテーブル1に共通したいです – nirdosh

+0

'Not working'それ以上の行を表示 – nirdosh

+0

その後、@ queryを使って、@nirdoshを実行します。 – sagi

0

この回避策は、あなたの問題を解決することがあります。最初にサブクエリを共通IDとして使用し、WHERE句を使用してチェックします。

SELECT T1.*, T2.* 
FROM Table1 T1 
INNER JOIN Table2 T2 ON T2.ID = T1.ID 
WHERE T1.ID IN (
    SELECT DISTINCT T1.ID 
    FROM Table1 TT1 
    INNER JOIN Table2 TT2 ON TT2.ID = TT1.ID) 

与えられたテーブルを使用したサンプル実行。私はSSMSで試したので、構文が異なる場合があります。

DECLARE @Table1 TABLE (id int, name varchar(20), [address] varchar(20), phone int) 

insert into @Table1 (id,name, [address] ,phone) 
VALUES 
    (1, 'Nirdosh', 'Shrestha',984901), 
    (2, 'krishna', 'hora',984902), 
    (7, 'birami', 'pokhara',984903) 

DECLARE @Table2 TABLE (id int, [weight] int, [destination] varchar(20), age int) 

insert into @Table2 (id, [weight], destination, age) 
VALUES 
    (1, 52, 'balkhu' ,32), 
    (2, 53, 'hanger' ,35), 
    (2, 65, 'fursad' ,35), 
    (3, 70, 'Ktm ' ,10) 

SELECT T1.*, T2.* 
FROM @Table1 T1 
INNER JOIN @Table2 T2 ON T2.ID = T1.ID 
WHERE T1.ID IN (
    SELECT DISTINCT T1.ID 
    FROM @Table1 TT1 
    INNER JOIN @Table2 TT2 ON TT2.ID = TT1.ID) 
関連する問題