我目前正在网站上使用 PHP 和 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 等)
我提前感谢大家提供的任何建议。
顺便说一句:我正在使用 PDO,因此 :email 对于那些想知道的人来说。