2016-04-28 22 views
4

我試圖運行此mysql命令:這個MySQL刪除命令爲什麼會出錯?

DELETE FROM hotel h 
LEFT JOIN user_hotel uh ON h.hotel_id = uh.hotel_id 
WHERE uh.user_hotel_id IS NULL 

它返回此錯誤:

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'h LEFT JOIN user_hotel uh ON h.hotel_id = uh.hotel_id WHERE uh.user_hotel_id I' at line 1

的命令似乎是不言自明的,所以不知道我得到錯誤的。有任何想法嗎?

回答

1

您需要提供要刪除像

DELETE h FROM hotel h 
LEFT JOIN user_hotel uh ON h.hotel_id = uh.hotel_id 
WHERE uh.user_hotel_id IS NULL 
2

你缺少table_name的那些要刪除

DELETE h FROM hotel h 
LEFT JOIN user_hotel uh ON h.hotel_id = uh.hotel_id 
WHERE uh.user_hotel_id IS NULL 
+0

我想這可能是類似的東西,但我被檢查出這篇文章,它只是有它作爲我寫的方式。你知道他們爲什麼不以你的方式提及嗎? http://www.techonthenet.com/mysql/delete.php – zeckdude

+0

在這篇文章中,他們正在對單個表執行操作,而在你的情況下你有兩個表。但是你必須提及要刪除的table_name :-) –

+0

感謝喬丹,這很有道理 – zeckdude

1
DELETE h FROM hotel h 
LEFT JOIN user_hotel uh ON h.hotel_id = uh.hotel_id 
WHERE uh.user_hotel_id IS NULL 
1

#缺什麼要刪除的表名。從表中刪除的工作只有在沒有加入

DELETE T1, T2 
FROM T1 
INNER JOIN T2 ON T1.key = T2.key 
WHERE condition 
+0

酷!感謝澄清爲什麼它不會刪除連接,如果我不指定要刪除的東西! – zeckdude

1

你需要指定哪個你要申請刪除捧場的情況下,表名。 看到這個link

你需要寫MySQL查詢象下面這樣:

DELETE h,uh FROM hotel h 
LEFT JOIN user_hotel uh ON h.hotel_id = uh.hotel_id 
WHERE uh.user_hotel_id IS NULL 
0

查詢:

DELETE column_name(which you want to delete) FROM hotel h 
LEFT JOIN user_hotel uh ON h.hotel_id = uh.hotel_id 
WHERE uh.user_hotel_id IS NULL 
相關問題