我這裏提供MySQL查詢: -ERROR 1241(21000)和ERROR 1093(HY000)MYSQL子查詢的防止執行
mysql> UPDATE tbl_driver SET active_flag=NULL WHERE Pk_driver_id = (SELECT Pk_driver_id FROM tbl_driver JOIN tbl_location ON tbl_driver.pk_driver_id = tbl_location.fk_driver_id WHERE updated_at <= NOW() - INTERVAL 3 MINUTE AND active_flag=1);
ERROR 1093 (HY000): You can't specify target table 'tbl_driver' for update in FROM clause
,所以我改變了我的子查詢選擇*:
mysql> UPDATE tbl_driver SET active_flag=NULL WHERE Pk_driver_id = (SELECT * FROM tbl_driver JOIN tbl_location ON tbl_driver.pk_driver_id = tbl_location.fk_driver_id WHERE updated_at <= NOW() - INTERVAL 3 MINUTE AND active_flag=1);
ERROR 1241 (21000): Operand should contain 1 column(s).
請幫我解決這個問題,提前致謝。
我改變「UPDATE tbl_driver SET active_flag = NULL WHERE Pk_driver_id =(SELECT Pk_driver_id FROM ......「仍然錯誤1093,沒有變化 – jasim