gpt4 book ai didi

mysql - 无法解决此 SQL 查询结果

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

我似乎无法弄清楚为什么:

SELECT `Title`.`Title`, `FirstName`, `LastName`, `Address1`, `Address2`, `Town`.`Town`, `County`.`County`, `PostalCode`, `Phone1`, `Solo` 
FROM `Person`
JOIN `Title` ON `Person`.`Title` = `Title`.`id`
JOIN `Town` ON `Person`.`Town` = `Town`.`id`
JOIN `County` ON `Person`.`County` = `County`.`id`
WHERE `Person`.`Solo`='1'
ORDER BY `LastName` ASC;

返回 0 个结果,(它不应该返回,至少有 5 个结果 Solo='1')

如果我修改它,取出所有 JOINS:

SELECT `Title`, `FirstName`, `LastName`, `Address1`, `Address2`, `Town`, `County`, `PostalCode`, `Phone1`, `Solo` 
FROM `Person`
WHERE `Person`.`Solo`='1'
ORDER BY `LastName` ASC;

我得到结果了吗?如果我修改它以取出 WHERE Person.Solo='1' 它也会给我结果,但只有 2 个; surley 它应该在哪里返回所有行?谁能解释一下?

:)

注意:Solo 是一个 tinyint,它等于所有记录中的 0 或 1!

最佳答案

您的连接是严格的,这意味着如果 Person 没有 Title Town Country 那么它就不会被退回。即使删除整个 WHERE 子句,您也不会得到任何结果。

请尝试使用 LEFT JOIN

这是对不同类型的连接如何工作的很好的解释:A Visual Explanation of SQL Joins

关于mysql - 无法解决此 SQL 查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11459655/

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