2012-07-27 80 views
-1

下面的SQL語句已經給我適合:MySQL錯誤1054 WHERE子句中

DELETE FROM zNMall1r.* WHERE zNMall1r.Phone = DoNotCall.Phone 

當我嘗試執行,則返回錯誤1054:

17:51:01 DELETE zNMall1r.* FROM zNMall1r WHERE zNMall1r.Phone = Phone.DoNotCall 
Error Code: 1054. Unknown column 'Phone.DoNotCall' in 'where clause' 0.078 sec 

任何人有這種想法嗎?

回答

0

錯誤消息非常明確,它表示您的WHERE子句中有一個未知列(DoNotCall.Phone)。

這是在另一張桌子上,你想在桌子上JOIN

如果是這樣,那麼你需要做到以下幾點:

DELETE z 
FROM zNMall1r z 
INNER JOIN DoNotcall o 
    ON z.yourIdcol = o.yourIdCol 
WHERE z.Phone = o.Phone 
0

你還沒有加入了一個名爲DoNotcall表。 MySQL不會搜索所有的數據庫來嘗試找到該列,所以你會得到這個錯誤。

+0

DoNotCall表肯定存在。當它不是WHERE子句的一部分時,它在其他查詢中起作用。因此我的困惑。 – mattparlmer 2012-07-27 22:14:49

+0

使用'DoNotCall'無所謂。如果它沒有列在'FROM'或'JOIN'中,那麼它就不存在於DBMS中,您將會看到這個錯誤。 – 2012-07-28 04:39:25