gpt4 book ai didi

php - 要从查询列表中删除的 Mysql 连接类型

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

我有 3 个三表:aaLocaleaCompany

如果 aCompany.parentID 不存在,我需要获取 a.id = aLocale.parentID 的所有行。

我知道 aLocale 是一个 innerJoin,但是 aCompany 呢?

我也可能错误地看待这个问题。我使用 aCompany 的唯一原因是匹配的行不存在。目前,我正在运行 a 查询并以数组形式获取结果。然后,我迭代该数组并取消设置与 aCompany 的单独查询匹配的项目。我觉得有一种更好的方法可以通过 1 个查询来完成此操作。

最佳答案

您可以使用 LEFT JOIN 而不是 INNER JOIN,这甚至会返回不匹配的值

SELECT * FROM a INNER JOIN aLocale ON a.id = alocale.parentID 
LEFT JOIN aCompany ON aCompany.parentID = alocale.parentID
WHERE aCompany.parentID IS NULL

编辑:您还可以在您的选择中使用coalesce()而不是*来获取parentID不为空

SELECT COALESCE(aCompany.parentID, aLocale.parentID) AS parentID FROM ....

使用coalesce(),你会在参数列表中找到第一个非空值

关于php - 要从查询列表中删除的 Mysql 连接类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22332398/

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