SQL

2012-01-16 18 views
7

iki farklı tablolardan değerleri seçmek için nasıl SQL Server veritabanında iki tablo var. İlk Test1 ve ikinci Test2 olup. Her iki tabloda da bir sütun RegNo vardır.SQL

Şimdi belirli bir RegNo için tablolar hem değerleri seçmek istiyor.

Bu benim

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

yapıyorum Ama sorgu hata veriyor şeydir. Belirli bir RegNo için verilerinizi seçmek istiyorsanız

cevap

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

çünkü RegNo her iki tabloda da 'KULLANIM' SELECT Test1.SurName, Test2.Class, Test2.Medium FROM Test1 INNER JOIN Test2 KULLANIMI (RegNo) ' –

+1

@Bondye Evet, kullanabilirsiniz - ama aynı yürütme planı ile sona, ama iyi liman değil SQL snipplet ile: atlatma. Temel kuralım: Platforma özgü bir özellik, performans veya işlevsellik getirirse: Kullanın. Sadece bir taşınabilir yapıya benziyorsa: ** kullanmayın **. –

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

Ve sadece bu yüzden gibi, sonuna bir WHERE maddesini ekleyin:

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

nerede benden daha hızlı, :) – Marco

+0

@Marco upvoted :) teşekkür ederiz! Sadece saniyeler meselesi gibi görünüyor. ;) –

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

a visual explanation of joins bakın bu katılımları öğrenmede çok yararlı.

+0

nerede daha hızlı. +1 –

1

bu deneyin:

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

Çok Temel soru, Google bu şimdi gelecek zaman ve deneyin:

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

İşte düzeltme ile sorgusu olur.

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

Ayrıca u istemek hangisi masa üzerinde Regno sağlayarak sorgu filtreleme yapabilirsiniz.