2016-04-13 19 views
0

Nedense bir araya gelmek için zor bir zamanım var ve bu SQL'de sahip olduğum bilgiyle çok basit olmalı.Bir Sütunda Veri Eşleştikleri İki Tabloya Katıl

Her neyse, 2 tablom var. Bunları TableA ve TableB olarak adlandıracağız. TableA'daki sütunlardan biri "ID" dir. TableB sadece "ID" sütunundan oluşur. Tüm satırları TableB'de kimliği olan TableA'da döndürmek istiyorum.

Bunun anlaması çok kolay olmalı, ama beynim bugün çalışmak istemiyor.

+0

ben 'EXISTS' veya' Alanı'nda kullanmak. –

+0

Olası çoğaltılacak [Farklı olanı seç ... iç birleştirme vs. seç ... burada (...) kimliğindeki (http://stackoverflow.com/questions/2638989/select-distinct-inner-join-vs- select-where-id-in) – skmathur

+0

[SQL JOIN ve farklı türde JOIN'lerin olası kopyası] (http://stackoverflow.com/questions/17946221/sql-join-and-different-types-of-joins) –

cevap

3

Bir EXISTS kullanarak bunu yapabilirsiniz: dilerseniz

Select A.* 
From TableA A 
Where Exists 
(
    Select * 
    From TableB B 
    Where A.Id = B.Id 
) 

Ayrıca JOIN kullanabilirsiniz, ancak verilerinizin bağlı olarak, çift isteyebilirsiniz SELECT DISTINCT bir ile:

Select Distinct A.* 
From TableA A 
Join TableB B On A.Id = B.Id 

Unutulmaması gereken bir şey, TableA'un ID'un ID'un TableB ile ilgili olmamasıdır.

+0

Teşekkür ederiz Bu işe yaradı! Şimdi TableA'da neyin seçildiğini nasıl güncellerim? "Güncelle" yi "update" ile değiştirmeyi denedim ve bu satırdan sonra neleri güncellemem gerektiğini ayarladım, ancak bu işe yaramaz. – danglesauce19

+0

@ chrisdoubleu13 Bunu, bir SET UPDATE olarak değiştirebilmelisiniz. . . Tablodan Bir NEREDE. . .' – Siyual

+0

Anladım. Tekrar teşekkürler! – danglesauce19

2

bu da böyle operatör İÇİNDE kullanabilirsiniz

SELECT B.ID 
FROM TableA A 
JOIN TableB B 
ON (A.ID=B.ID) 
WHERE A.ID=B.ID 
1

çalışması gerekir:

Select * 
From TableA 
Where ID in 
(
    Select distinct ID 
    From TableB 
) 
İlgili konular