gpt4 book ai didi

MySQL 连接不等于空右表

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

我正在尝试连接两个表,其中右表可能为空。如果它是空的,我想要左表中的所有记录。如果它不为空,那么我想要左表中不存在于右表中的所有记录。像这样: venn diagram

此外,我需要过滤结果,以便 tbl.free=1

我认为这将是一个像这样的简单任务:

SELECT tbl1.id, tbl1.name FROM tbl1 LEFT JOIN tbl2 ON tbl1.id <> tbl2.fk1 WHERE tbl1.free=1

我得到的结果是当 tbl2 为空时,我得到所有 tbl1 条目,其中 free=1 - 这很好当 tbl2 中有一个条目时,我得到 tbl1 中的所有条目 - 与上面完全相同(不好)

我需要做什么才能执行此操作???

最佳答案

这是一个推测,但您可能需要向 WHERE 子句添加一个条件,该条件检查第二个表中的列是否为 NULL,这表明第一个表中的特定记录匹配:

SELECT tbl1.id, tbl1.name
FROM tbl1
LEFT JOIN tbl2
ON tbl1.id = tbl2.fk1
WHERE tbl1.free = 1 AND tbl2.fk1 IS NULL

关于MySQL 连接不等于空右表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44541521/

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