gpt4 book ai didi

mysql - MYSQL 查询中奇怪的空集结果

转载 作者:行者123 更新时间:2023-11-29 12:25:50 25 4
gpt4 key购买 nike

我正在尝试编写一个查询来查找链接到非当前 pma 的所有 PMA 任务。我们针对不同的任务类型(entity_task 表)遵循单表继承。所有当前的 pma id 都存储在员工表中。

我的第一次尝试如下:

SELECT * FROM entity_task 
WHERE dtype = 'PMATask'
AND pma_id NOT IN (SELECT pma_id FROM employee);

我希望这会返回链接到非当前 PMA 的所有任务,但它只返回一个空集。

实体任务表结构如下

+---------------------------+-------------+------+-----+--------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------------------+-------------+------+-----+--------------------+----------------+
| id | bigint(20) | NO | PRI | NULL | auto_increment |
| date_created | datetime | NO | | NULL | |
| version | int(11) | NO | | NULL | |
| employee_course_id | bigint(20) | YES | MUL | NULL | |
| task_id | bigint(20) | NO | MUL | NULL | |
| tenant_id | bigint(20) | YES | MUL | NULL | |
| date_updated | datetime | YES | | NULL | |
| dtype | varchar(31) | NO | | EmployeeCourseTask | |
| meeting_id | bigint(20) | YES | MUL | NULL | |
| pma_id | bigint(20) | YES | MUL | NULL | |
| critical_talent_review_id | bigint(20) | YES | MUL | NULL | |
| working_week_id | bigint(20) | YES | MUL | NULL | |
| leave_form_id | bigint(20) | YES | MUL | NULL | |
| leave_adjustment_id | bigint(20) | YES | MUL | NULL | |
| remuneration_run_id | bigint(20) | YES | MUL | NULL | |
+---------------------------+-------------+------+-----+--------------------+----------------+

我们最终设法通过使用以下查询来获取链接到非当前 PMA 的所有任务

SELECT et.id 
FROM entity_task et
LEFT JOIN employee e ON et.pma_id = e.pma_id
WHERE e.pma_id IS NULL
AND et.dtype = 'PMATask';

我真的觉得我在这里错过了一些东西,有什么建议吗?

最佳答案

您的两个查询不相等,第一个查询检查entity_task中的所有 pma_id,而该id在员工中不存在。

第二个通过添加 JOIN 条件检查相同的内容,entity_task 中的所有 pma_id 不存在于员工中,但仅针对 et.pma_id = e.pma_id 的每个子集。

这里重写了第一个查询以考虑到这一点

SELECT * FROM entity_task 
WHERE dtype = 'PMATask'
AND pma_id NOT EXISTS(SELECT pma_id FROM employee WHERE employee.pma_id=entity_task.pma_id);

关于mysql - MYSQL 查询中奇怪的空集结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28339532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com