gpt4 book ai didi

mysql - 执行此查询的正确方法

转载 作者:行者123 更新时间:2023-11-29 09:01:30 24 4
gpt4 key购买 nike

我有一张 table

form ( int id ) webformsystemflags ( int id, int formid int sysflagid )

sysflag ( int id, name char(10) )

表单表是一个包含所有表单的表

webform 是一个表格,其中包含应用了标志的表单。它有一个外键 formid ,它是表单表的 id ,还有 sysflagid ,它是 sys 标志表的外键

sys flag 是包含标志的表。假设我将标志定义为 1,2,3我可以拥有未应用所有标志的表单,有些可能有 1,有些可能有 2,有些可能有 3,有些可能没有。

如何找到应用了标志 1 或标志 2 或标志 3 的所有表单?

最佳答案

这是查找排除的常见技巧。我下面的“FlagYouAreExpectingTo_NOT_Exist”值明确是您期望不存在的值。下面是它的工作原理。

获取每个表单并左连接到 Web 系统标志表,找到您不想要的匹配表单和标志设置。如果它找到表单和标志的有效条目,则 (wsf) 表中的“formid”将存在。因此,我们希望所有不存在的东西,因此结束 WHERE wsf.formid 为 null。

对于尚未标记的内容,它将为 NULL。

select
f.ID
from
forms f
left join webformsystemflags wsf
on f.id = wsf.formid
AND wsf.sysflagid = FlagYouAreExpectingTo__NOT__Exist
where
wsf.formid is null

关于mysql - 执行此查询的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8440219/

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