[SQL] 와 DELETE SQL은 것은 WHERE 조건에 대한 다른 테이블 가입
SQL와 DELETE SQL은 것은 WHERE 조건에 대한 다른 테이블 가입
나는 가이드 테이블 (죽은 관계)와 아무 관계가없는 guide_category에서 행을 삭제해야합니다.
여기에 내가하고 싶은 것입니다 만, 당연히 작동하지 않습니다.
DELETE FROM guide_category AS pgc
WHERE pgc.id_guide_category IN (SELECT id_guide_category
FROM guide_category AS gc
LEFT JOIN guide AS g ON g.id_guide = gc.id_guide
WHERE g.title IS NULL)
오류:
해결법
-
==============================
1.때문에 잠금 구현 문제로, MySQL은 DELETE 또는 UPDATE에 영향을받는 테이블을 참조 할 수 없습니다.
때문에 잠금 구현 문제로, MySQL은 DELETE 또는 UPDATE에 영향을받는 테이블을 참조 할 수 없습니다.
당신은 대신 여기에 가입 할 필요가 :
DELETE gc.* FROM guide_category AS gc LEFT JOIN guide AS g ON g.id_guide = gc.id_guide WHERE g.title IS NULL
아니면 그냥 NOT IN을 사용합니다 :
DELETE FROM guide_category AS gc WHERE id_guide NOT IN ( SELECT id_guide FROM guide )
-
==============================
2.나는 당신의 설명에서, 다음은 충분 생각 :
나는 당신의 설명에서, 다음은 충분 생각 :
DELETE FROM guide_category WHERE id_guide NOT IN (SELECT id_guide FROM guide)
나는, 관련된 테이블에는 참조 무결성 제약 조건이 없다는 것을, 있다고 가정?
-
==============================
3.쉬운 이해를 위해이 샘플 SQL 스크립트를 사용해보십시오
쉬운 이해를 위해이 샘플 SQL 스크립트를 사용해보십시오
CREATE TABLE TABLE1 (REFNO VARCHAR(10)) CREATE TABLE TABLE2 (REFNO VARCHAR(10)) --TRUNCATE TABLE TABLE1 --TRUNCATE TABLE TABLE2 INSERT INTO TABLE1 SELECT 'TEST_NAME' INSERT INTO TABLE1 SELECT 'KUMAR' INSERT INTO TABLE1 SELECT 'SIVA' INSERT INTO TABLE1 SELECT 'SUSHANT' INSERT INTO TABLE2 SELECT 'KUMAR' INSERT INTO TABLE2 SELECT 'SIVA' INSERT INTO TABLE2 SELECT 'SUSHANT' SELECT * FROM TABLE1 SELECT * FROM TABLE2 DELETE T1 FROM TABLE1 T1 JOIN TABLE2 T2 ON T1.REFNO = T2.REFNO
귀하의 경우는 다음과 같습니다
DELETE pgc FROM guide_category pgc LEFT JOIN guide g ON g.id_guide = gc.id_guide WHERE g.id_guide IS NULL
-
==============================
4.방법에 대해 :
방법에 대해 :
DELETE guide_category WHERE id_guide_category IN ( SELECT id_guide_category FROM guide_category AS gc LEFT JOIN guide AS g ON g.id_guide = gc.id_guide WHERE g.title IS NULL )
from https://stackoverflow.com/questions/1980738/sql-delete-with-join-another-table-for-where-condition by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 오라클에 연결하여 그룹의 여러 행 [중복] (0) | 2020.04.20 |
---|---|
[SQL] 저장 프로 시저 거래-SQL SQL 서버 내에서 결과 세트에 대한 액세스 (0) | 2020.04.20 |
[SQL] 식별 컬 테이블을 만드는 방법 (0) | 2020.04.20 |
[SQL] 의 판매와 달을 포함하여 지난 12 개월의 MySQL의 월간 판매 (0) | 2020.04.20 |
[SQL] 열 너무 긴 1406 데이터 - MySQL의 오류 코드 (0) | 2020.04.20 |