【发布时间】:2014-10-25 01:41:15
【问题描述】:
我想知道检查一个表数据的最佳方法,当没有更多行与 WHERE 子句匹配时,从另一个表中删除一行。
我自己试过了,但是用 6 个查询和嵌套的 if/else 变得太麻烦了,而且它不能把它加满。
我以前从未使用过 SQL 连接,因此示例将帮助我理解响应。
我有一个设备表,有一个带有设备和密码的主表。
上表还有第二个表,其中包含设备的多行,以及一系列序列号。
当第二个表不再包含主表中列出的任何序列号时,我想要包含主表中的设备和密码的行。
【问题讨论】:
-
我回家后会发布示例代码,现在它在澳大利亚的家乡时间,所以稍后会起来。
-
最多只需要 2 个查询。第一次检查表a中是否存在数据,返回结果,如果为空则删除该行。简单的程序。
-
您能否将一些示例数据与您的预期结果一起包含在内,以便于理解?
-
预期结果是当从第二个表中删除序列号时,它会检查其最后一行是否已删除(并且该设备不再存在)。如果该设备的最后一行被删除,则它会从主表中删除相应的设备行。
-
您可以使用外键和 ON DELETE CASCADE 选项重新设计数据库架构,然后从一个表中删除将自动从所有链接表中删除相关记录
标签: php mysql delete-row