2016-04-13 3 views
0

Aus irgendeinem Grund habe ich Schwierigkeiten, Joins zu erfassen, und dieser sollte mit dem Wissen, das ich in SQL habe, sehr einfach sein.Join von zwei Tabellen, in denen Daten in einer Spalte übereinstimmen

Wie auch immer, ich habe 2 Tabellen. Wir werden sie TableA und TableB nennen. Eine der Spalten in Tabelle A ist "ID". TabelleB besteht nur aus der Spalte "ID". Ich möchte alle Zeilen in TableA zurückgeben, deren ID in TableB vorhanden ist.

Ich weiß, dass dies sehr einfach sein sollte, aber mein Gehirn will heute nicht arbeiten.

+0

würde ich 'EXISTS' oder' IN' verwenden. –

+0

Mögliches Duplikat von [Select distinct ... inner join vs. select ... wobei id in (...)] (http://stackoverflow.com/questions/2638989/select-distinct-inner-join-vs-- select-where-id-in) – skmathur

+0

Mögliches Duplikat von [SQL JOIN und verschiedenen Typen von JOINs] (http://StackOverflow.com/questions/17946221/SQL-Join-und-Different-Types-of-Joins) –

Antwort

3

Sie können dies tun, indem ein EXISTS:

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

Sie können auch eine JOIN verwenden, wenn Sie wollen, aber je nach Ihren Daten, können Sie zu koppeln möchten, dass mit einem SELECT DISTINCT:

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

Eine Sache zu beachten ist, dass die ID von TableA nicht unbedingt mit der ID von TableB verbunden ist.

+0

Danke Du hast funktioniert! Wie würde ich nun aktualisieren, was in TableA ausgewählt wurde? Ich habe versucht, "Select A. * from" durch "update" zu ersetzen und setze, was ich nach dieser Zeile aktualisieren muss, aber das scheint nicht zu funktionieren. – danglesauce19

+0

@ chrisdoubleu13 Sie sollten es in 'UPDATE A SET <ändern können. . . Von Tabelle A A WHERE. . .' – Siyual

+0

Verstanden. Danke noch einmal! – danglesauce19

2

sollte diese

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

arbeiten Sie auch IN Operator wie folgt verwenden können:

Select * 
From TableA 
Where ID in 
(
    Select distinct ID 
    From TableB 
) 
Verwandte Themen