WHERE
절이 다른 테이블의 값을 기반으로하는 INNER JOIN
으로 행을 삭제하려는 테이블이 있습니다. 표 2의 primary_key
표에서 foreign_key
1.mysql은 다른 테이블의 값을 기반으로 행을 삭제합니다.
표 1
table_1_id | customer_id | table_2_id
-----------------------------------------
1 | 5 | 1
2 | 5 | 2
3 | 5 | 3
표 2 표 2의 value
동일 여기서 I는 표 1의 행을 삭제할
table_2_id | value
-----------------------
1 | 0
2 | 0
3 | 1
0
. 따라서이 예제에서 문은 INNER JOIN
을 사용하여 두 테이블을 연결하기 때문에 표 1의 처음 두 행을 삭제해야합니다.
나는 이것을 시도했지만 정확히 내가 원하는 것을하지 않았다. 이 명령문은 항상 첫 번째 두 개가 아닌 표 1의 모든 행을 삭제합니다.
DELETE t1
FROM Table1 t1
INNER JOIN Table2 t2 ON (t1.table_2_id = t2.table_2_id)
WHERE t1.customer_id = '5'
AND t2.value = '0'
where 절을()에 넣고 무슨 일이 일어나는지보십시오. –
[Fiddle] (http://sqlfiddle.com/#!9/210938/1)에서 잘 작동합니다. –
이 동작을 복제 할 수 없습니다. – Strawberry