2014-03-25 140 views
0

我正在使用mysql和php。我無法刪除任何記錄,即使記錄存在,以滿足在查詢中指定的條件,請大家幫忙找出問題, 我的查詢是其中嵌套查詢中的子句

表1(ID,LName的) 表2(ID,LName的)

delete from table1 where Lname in (select Lname from table2); 
+0

這不是一個好作風問SO中的問題。請顯示您的表格結構以及迄今爲止所做的工作。 –

+0

我有兩個表table1(id,名稱)和table2(id,名稱),我想刪除table1中的記錄,如果它在table2中存在相同的名稱。 – Ajeet

+0

請在您的評論中添加表格說明和其他詳細信息。 – Neels

回答

0

根據您在您的評論中提供的表結構,查詢應該是有點這樣的:

delete from table1 
where name in 
(select name 
from table2) 

但根據你的問題,看來你的表似乎沒有有一個名爲列「L-NAME」。

如果你的列名實際上是「L-NAME」,那麼查詢可以重新寫爲:

delete from table1 
where Lname in 
(select Lname 
from table2) 

請,請格外小心提表的結構,你必須張貼你的表的相應名稱和列和正確的拼寫。

+0

它已被修改。 – Ajeet

2

delete from table1 where Lname in (select Lname from table2);

它爲我工作。也許有情況的問題,所以像這樣的

delete from table1 where upper(Lname) in (select upper(Lname) from table2);

0

嘗試另一種選擇是使用JOIN: -

DELETE table1 
FROM table1 
INNER JOIN table2 
ON table1.Lname table2.Lname 

,但原來的SQL應該工作