2012-01-16 33 views
7

SQL Serverデータベースに2つのテーブルがあります。最初はTest1であり、2番目はTest2です。両方の表に列RegNoがあります。SQLで2つの異なるテーブルから値を選択する方法

ここでは、両方のテーブルから特定の値のRegNoを選択します。

これは私が

SELECT Test1.SurName, Test2.Class, Test2.Medium 
FROM Test1,Test2 JOINS 
Test2 ON Test1.RegNo = Test2.RegNo 

をやっているしかし、私のクエリがエラーを与えているものです。

答えて

6
SELECT Test1.SurName, Test2.Class, Test2.Medium 
FROM Test1 
INNER JOIN Test2 ON Test1.RegNo = Test2.RegNo 
+0

RegNoは両方のテーブルにあるので、 'USING'を使用することもできます。Test1.SurName、Test2.Class、Test2.Medium Test1 INNER JOIN Test2 USING(RegNo)' –

+1

@Bondye同じ実行計画で終わるが、SQLスニペットではうまくいきません。私の経験則:プラットフォーム固有の機能がパフォーマンスや機能をもたらす場合:それを使用します。それがポータブルな構造を言い換えるだけなら、それを使用しないでください**。 –

8
select 
    Test1.SurName, 
    Test2.Class, 
    Test2.Medium 
from Test1 
inner join Test2 
on Test1.RegNo = Test2.RegNo 

そして、あなたはちょうどそうのように、最後までWHERE句を追加し、特定のRegNoのためにあなたのデータを選択する場合:

select 
    Test1.SurName, 
    Test2.Class, 
    Test2.Medium 
from Test1 
inner join Test2 
on Test1.RegNo = Test2.RegNo 
where Test1.RegNo = 123456 -- or whatever value/datatype your RegNo is 
+0

私より速く、upvoted: – Marco

+0

@Marco :)ありがとう!ほんの数秒しかかかりませんでした。 ;) –

3
SELECT Test1.SurName, Test2.Class, Test2.Medium 
FROM Test1 
INNER JOIN Test2 
ON Test1.RegNo = Test2.RegNo 

これはa visual explanation of joinsを参照してください。ジョインの学習に非常に役立ちます。

+0

あなたはどこに速いですか? +1 –

1

はこのお試しください:

SELECT Test1.SurName, Test2.Class, Test2.Medium 
FROM Test1 INNER JOIN Test2 
ON Test1.RegNo = Test2.RegNo 
WHERE Test1.RegNo = desired_id 
1

非常に基本的な質問を、今、次の時間とこのGoogleを試してみてください。ここで

SELECT Test1.SurName, Test2.Class, Test2.Medium 
FROM Test1 
inner join Test2 ON Test1.RegNo = Test2.RegNo 
1

は補正を使用してクエリです。

SELECT Test1.SurName, Test2.Class, Test2.Medium 
    FROM Test1 INNER JOIN Test2 ON Test1.RegNo = Test2.RegNo where Test2.RegNo=Test1.RegNo; 

また、あなたはuがしたい方のテーブルの上に、レグノを提供することにより、クエリを絞り込むことができます。

関連する問題