gpt4 book ai didi

mysql - 如果 WHERE 子句适用于多行,是否测试所有行?

转载 作者:行者123 更新时间:2023-11-29 07:57:23 26 4
gpt4 key购买 nike

我有一个包含项目和作业的数据库。每项任务都链接到一个项目,但项目可以有多个任务。如何选择所有未存档但其关联作业均具有特定状态(已付费)的项目?以下内容会产生预期结果,因为我目前没有包含多个作业的项目,但如果我这样做,它会起作用吗?

SELECT projects.*
FROM projects,
assignments
WHERE projects.id=assignments.project_id
AND assignments.status='Paid'
AND projects.archived='N'

最佳答案

试试这个:

SELECT p.*
FROM projects p
WHERE NOT EXISTS
(SELECT 1
FROM assignments a
WHERE p.id = a.project_id AND a.status <> 'Paid'
)
AND p.archived='N';

SQL Fiddle demo

关于mysql - 如果 WHERE 子句适用于多行,是否测试所有行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24772099/

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