2016-04-13 62 views
0

出於某種原因,我很難理解聯接,並且這個應該非常簡單,具有SQL中的知識。加入兩個表,其中數據在一列中匹配

無論如何,我有2個表格。我們將它們稱爲TableA和TableB。 TableA中的一列是「ID」。表B只包含「ID」列。我想返回TableA中ID的所有行。

我知道這應該很容易弄清楚,但我的大腦不想今天工作。

+0

我會用'EXISTS'或'IN'。 –

+0

[Select distinct ... inner join vs. select ... where id in(...)]的可能重複(http://stackoverflow.com/questions/2638989/select-distinct-inner-join-vs- select-where-id-in) – skmathur

+0

[SQL JOIN和不同類型的JOIN的可能的重複](http://stackoverflow.com/questions/17946221/sql-join-and-different-types-of-joins) –

回答

3

爲此,您可以使用EXISTS

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

你也可以使用一個JOIN如果你願意,但根據你的數據,你可能要夫婦與一SELECT DISTINCT

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

需要注意的一點是TableAID未必與的TableB相關。

+0

謝謝你這工作!現在我將如何更新TableA中選擇的內容?我嘗試用「update」替換「select A. * from」,並在該行之後設置我需要更新的內容,但似乎不起作用。 – danglesauce19

+0

@ chrisdoubleu13您應該可以將其更改爲「UPDATE A SET」。 。 。 FROM TableA A WHERE。 。 .' – Siyual

+0

明白了。再次感謝! – danglesauce19

2

這應該工作

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

您還可以使用IN操作是這樣的:

Select * 
From TableA 
Where ID in 
(
    Select distinct ID 
    From TableB 
) 
相關問題