【发布时间】:2013-10-30 05:09:47
【问题描述】:
我目前正在一个网站上使用 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,因此对于那些想知道的人来说:电子邮件。
【问题讨论】: