하나의 명령문으로 여러 테이블에서 삭제
P粉716228245
P粉716228245 2023-08-18 10:28:49
0
1
525
<p>MySQL을 사용하여 여러 테이블에서 여러 레코드를 한 번에 삭제하려고 합니다. 처음에는 이렇게 할 수 있을 거라 생각했습니다. </p> <pre class="brush:php;toolbar:false;">t1, t2 삭제 테이블1 t1에서 JOIN table2 t2 ON t1.id = t2.table1_id JOIN table3 t3 ON t1.id = t3.table1_id t1.id IN(?,?,?,?);</pre> <p>그런데 table2에 기존 레코드가 없으면 <strong>JOIN</strong>을 <strong>LEFT JOIN</strong>으로 변경해야 하나요? 그리고 8개의 테이블(2x2x2x2x2x2x2x2)에서 2~3개의 레코드만 삭제하면 지연이 발생하나요? </p>
P粉716228245
P粉716228245

모든 응답(1)
P粉118698740

네, 그럴 거예요table2上的连接改为left join会实现您想要的效果。属于列表和table3table1中的行都将被删除,无论它们是否也存在于table2. 동시에 가능한 일치 라인도 삭제됩니다.

으아악

table3上的join重写为exists条件。这样可以更明确地表达查询的意图,并且可能性能更好,特别是如果在table3(table1_id)에 색인이 있는 경우 다음을 권장합니다.

으아악
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿