php - sql delete with select 条件

标签 php mysql select

也许有人可以帮助我。

我有 2 个 sql 表:

 // groups
 | id_group   | namegroup |
 +------------+-----------+
 | 30         | s         |


 // contacts
 | name | group |
 +------+-------+
 | juan | s     |

我需要从 ID 中删除一个组,但没有与之关联的联系人。 我测试了以下查询但不起作用。

DELETE
FROM group
WHERE id_group = 30
AND (
    SELECT
        count(*) AS id
    FROM contacts co
    INNER JOIN GROUP c ON co. GROUP = c.namegroup
    WHERE   c.id_group = 30
) = 0

谢谢

最佳答案

如果您想要删除具有 ID = 30 的组,您可以尝试以下查询,前提是该组未与任何联系人相关联:

查询 #1:

DELETE
`groups`
FROM `groups`
LEFT JOIN contacts
ON contacts.`group` = `groups`.namegroup
WHERE `groups`.id_group = 30
AND contacts.`group` IS NULL;

如果您想删除所有没有任何关联联系人的组,请尝试以下查询:

查询#2:

 DELETE
 `groups`
 FROM `groups`
 LEFT JOIN contacts
 ON contacts.`group` = `groups`.namegroup
 WHERE contacts.`group` IS NULL;

关于php - sql delete with select 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37404028/

相关文章:

php - 在我的网站上添加评论系统

javascript - 如何在 javascript 中向图像添加工具提示(基于条件)?

sql - 在 SELECT 语句中执行存储过程

sql - 如何解决postgresql中group by和aggregate函数的问题

php - 如何从 PHP 中的单选按钮发送值属性

php - Joomla com_user 扩展类似于 com_categories 和 com_content

php - 循环遍历表单后将值插入数据库

mysql - 如何在mysql查询中过滤非空值?

PHP MySQL : issue selecting different columns from the same table

mysql - 使用多个条件选择记录