저는 현재 웹 사이트에서 PHP와 SQL로 작업하고 있습니다. 사용자 (계정), 조직 및 조직을 계정에 연결하는 관계형 테이블이 있습니다 (다 대다 관계)이 SQL 쿼리를 구성하는 올바른 방법입니까?
데이터베이스에서 계정을 삭제할 때 SQL 쿼리는 모든 조직을 삭제해야합니다. 삭제 된 계정이 조직에 연결된 유일한 계정 인 경우 계정이 연결됩니다.
저는 비교적 SQL에 익숙하지 않으며 위의 조건에서 조직 테이블에서 조직을 삭제해야하는 쿼리를 작성했습니다.
'DELETE FROM TBL_ORGANISATIONS WHERE id = (
SELECT org_id FROM TBL_AFFILIATIONS WHERE account_email = :email AND (
SELECT COUNT(*) FROM TBL_AFFILIATIONS WHERE org_id IN (
SELECT org_id FROM TBL_AFFILIATIONS WHERE account_email = :email
)
) = 1
)'
이이 쿼리를 구성하는 올바른 방법인가, 아니면이 일을 명확하게/더 효율적인 방법이 여기있다 : 내 쿼리입니다? 이전에 언급했듯이 저는 SQL에 익숙하지 않고이 같은 쿼리를 작성하는 데 유용한 모든 SQL 키워드의 개념을 아직 파악하지 못했습니다 (JOIN 등)
모든 조언을 위해 미리 감사드립니다. 당신이 제공 할 수 있습니다.
By 덧붙여 : 나는 PDO를 사용하고 있습니다. 궁금한 분들을위한 이메일입니다.
답장을 보내 주셔서 감사합니다. MyISAM을 테이블 엔진으로 사용하고 있기 때문에 외래 키는 사용하지 않았지만 권장 사항에 따라 엔진을 InnoDB로 변경하고 두 테이블 간의 관계를 생성하는 올바른 방법처럼 외래 키를 추가했습니다. 현재 외래 키가 사용되고 있기 때문에 좋은 해결책 인 것 같습니다. 감사합니다 –