2017-04-04 89 views
0

我想根據另一個表中的記錄刪除一個表中的記錄。我正在使用內部連接。我使用的代碼如下:刪除有內部聯接的表中的記錄

delete * from assets_l a, laptop_tracker b 
where a.serialno=b.serialno; 

我正試圖刪除assets_l表中與記錄在筆記本電腦跟蹤器表中具有匹配序列號的所有記錄。請幫忙嗎?

+0

您面臨的問題是什麼? –

+0

這是無效的(標準)SQL。你正在使用哪個DBMS? –

+0

你正在使用哪個dbms?該聲明是產品特定的。 – jarlh

回答

1

什麼讓你有想法加入?您想從assets_l中刪除laptop_tracker中存在匹配的地方。您可以在此一字幾乎轉化爲SQL:

delete from assets_l 
where exists (select * from laptop_tracker lt where lt.serialno = assets_l.serialno); 

換句話說:從assets_l刪除其中的序列號也是laptop_tracker:

delete from assets_l 
where serialno in (select serialno from laptop_tracker); 

我會去第二個語句(與IN條款)爲簡單起見。這是標準SQL,應該適用於每個RDBMS。

+0

謝謝..作品像一個魅力 –