出於某種原因,我很難理解聯接,並且這個應該非常簡單,具有SQL中的知識。加入兩個表,其中數據在一列中匹配
無論如何,我有2個表格。我們將它們稱爲TableA和TableB。 TableA中的一列是「ID」。表B只包含「ID」列。我想返回TableA中ID的所有行。
我知道這應該很容易弄清楚,但我的大腦不想今天工作。
出於某種原因,我很難理解聯接,並且這個應該非常簡單,具有SQL中的知識。加入兩個表,其中數據在一列中匹配
無論如何,我有2個表格。我們將它們稱爲TableA和TableB。 TableA中的一列是「ID」。表B只包含「ID」列。我想返回TableA中ID的所有行。
我知道這應該很容易弄清楚,但我的大腦不想今天工作。
爲此,您可以使用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
需要注意的一點是TableA
的ID
未必與的TableB
相關。
謝謝你這工作!現在我將如何更新TableA中選擇的內容?我嘗試用「update」替換「select A. * from」,並在該行之後設置我需要更新的內容,但似乎不起作用。 – danglesauce19
@ chrisdoubleu13您應該可以將其更改爲「UPDATE A SET」。 。 。 FROM TableA A WHERE。 。 .' – Siyual
明白了。再次感謝! – danglesauce19
這應該工作
SELECT B.ID
FROM TableA A
JOIN TableB B
ON (A.ID=B.ID)
WHERE A.ID=B.ID
您還可以使用IN操作是這樣的:
Select *
From TableA
Where ID in
(
Select distinct ID
From TableB
)
我會用'EXISTS'或'IN'。 –
[Select distinct ... inner join vs. select ... where id in(...)]的可能重複(http://stackoverflow.com/questions/2638989/select-distinct-inner-join-vs- select-where-id-in) – skmathur
[SQL JOIN和不同類型的JOIN的可能的重複](http://stackoverflow.com/questions/17946221/sql-join-and-different-types-of-joins) –