SQL編寫常見錯誤記錄

mysql錯誤:1093 You can't specify target table for update in FROM clause

錯誤代碼html

UPDATE tb_applicant 
SET data_3 = 0
WHERE
	id IN (
		SELECT
			id
		FROM
			 tb_applicant 
		WHERE
			`status` = 1
		AND check_status = 1
		AND id NOT IN (
			SELECT
				applicant_id
			FROM
				tb_test_paper 
		)
	)

緣由:MySQL對子查詢支持比較薄弱,能夠創建緩存表解決,參考博客mysql

更正後的代碼sql

UPDATE tb_applicant 
SET data_3 = 0
WHERE
	id IN (
		SELECT
			temp.id
		FROM
			(select id from tb_applicant 
		WHERE
			`status` = 1
		AND check_status = 1
		AND id NOT IN (
			SELECT
				applicant_id
			FROM
				tb_test_paper 
		)) temp
	)
相關文章
相關標籤/搜索