我在下面查詢...查詢中有什麼問題
有沒有什麼問題呢?
delete from user_role
WHERE user_id in (
select u.user_id from user u, user_role ur
where u.USER_ID=ur.USER_ID and ur.ROLE_ID=4 and u.USER_ID not in (
select user_id from referrers));
我在下面查詢...查詢中有什麼問題
有沒有什麼問題呢?
delete from user_role
WHERE user_id in (
select u.user_id from user u, user_role ur
where u.USER_ID=ur.USER_ID and ur.ROLE_ID=4 and u.USER_ID not in (
select user_id from referrers));
正如在手冊中規定的DELETE
Syntax:
Currently, you cannot delete from a table and select from the same table in a subquery.
可以代替使用DELETE
和join在一起的表中的多個數據表的形式:
DELETE user_role
FROM user_role
INNER JOIN user_id USING (USER_ID)
LEFT JOIN referrers USING (USER_ID)
WHERE user_role.ROLE_ID = 4 AND referrers.USER_ID IS NULL
我認爲你不能在'DELETE FROM user_role'裏面使用'SELECT user_role' ... – Marco
你得到了什麼錯誤?從快速看,它似乎應該執行,但如果你有大量的數據,我認爲它會很慢。 – Braiba
stackoverflow是不是一個測試datebase :) – xdazz