gpt4 book ai didi

php - 为什么使用 "AND"运算符与 JOIN 一起工作,即使没有 "WHERE"子句

转载 作者:可可西里 更新时间:2023-11-01 07:21:55 24 4
gpt4 key购买 nike

下午好,我刚刚注意到一件事。如果我编写一个带有 JOIN 的 mysql 查询,例如:

Select Car, Vendor from Cars JOIN Vendor On Vendor.IdCar=Car.IdCar WHERE  Car="Brand"

它将返回等于“Brand”的汽车。

但我注意到,如果我以这种方式构建查询:

Select Car, Vendor from Cars JOIN Vendor On Vendor.IdCar=Car.IdCar AND Car="Brand" 

它将返回与先前查询相同的内容。请注意,我使用 AND 而不是 WHERE。我还在 PHP 查询中测试了它是否有效。例如:

Select Car, Vendor from Cars JOIN Vendor On Vendor.IdCar=Car.IdCar AND Car=$brand

代替

Select Car, Vendor from Cars JOIN Vendor On Vendor.IdCar=Car.IdCar WHERE Car=$brand

所以我要问的问题是:为什么第二个查询有效?是不是因为使用了 JOIN,因为我很确定在 AND 之前需要 WHERE 子句?

最佳答案

因为 JOIN 不限于匹配主键;即使是这样,也有复合键需要多列才能匹配,所以你肯定需要 AND

您显示的语句不是好的样式,因为它滥用 join 子句来模拟应该是 where 条件的内容;然而,它会按预期工作。

如果您要使用外部 联接,该语句绝对有意义。在这种情况下,join 子句中的 bool 表达式在功能上等同于 where 子句中的相同 bool 表达式。因此,根据您要使用外部联接查询的内容,您必须使用其中之一。

关于php - 为什么使用 "AND"运算符与 JOIN 一起工作,即使没有 "WHERE"子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38936022/

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