gpt4 book ai didi

php - SQL 连接与连接表中的 where 子句

转载 作者:行者123 更新时间:2023-11-29 10:31:16 24 4
gpt4 key购买 nike

世界。

我这里有两个表,分别称为 drivers 和 checkin。 checkin 表的 d_id 字段保存驱动程序表中条目的 ID。

在我的查询中,我尝试连接表并在连接表上执行 where 条件。

到目前为止,我有这个查询(我无法连接表,连接表上的 where 部分是在我实现此查询后出现的)

SELECT checkin.id, checkin.d_id, checkin.place, ( 3959 * acos( cos( radians(8.9551889) ) * cos( radians( lati ) )
* cos( radians( longi ) - radians(76.9902276) ) + sin( radians(8.9551889) ) * sin(radians(lati)) ) ) AS distance
FROM checkin WHERE status != 1
INNER JOIN drivers ON drivers.id = checkin.d_id
HAVING distance < 10
ORDER BY distance
LIMIT 0 , 20

这个查询在没有内部联接的情况下也可以工作,但我不太确定我在这里做错了什么。如果有人能指出,那会很有帮助。谢谢。

最佳答案

您应该在 inner join 之后使用 where 子句:

SELECT checkin.id, checkin.d_id, checkin.place, ( 3959 * acos( cos( radians(8.9551889) ) * cos( radians( lati ) )
* cos( radians( longi ) - radians(76.9902276) ) + sin( radians(8.9551889) ) * sin(radians(lati)) ) ) AS distance
FROM checkin
INNER JOIN drivers ON drivers.id = checkin.d_id
WHERE status != 1
HAVING distance < 10
ORDER BY distance
LIMIT 0 , 20;

替代查询:

 SELECT checkin.id, checkin.d_id, checkin.place, ( 3959 * acos( cos( radians(8.9551889) ) * cos( radians( lati ) )
* cos( radians( longi ) - radians(76.9902276) ) + sin( radians(8.9551889) ) * sin(radians(lati)) ) ) AS distance
FROM (select *from checkin where status!=1) checkin
INNER JOIN drivers ON drivers.id = checkin.d_id
HAVING distance < 10
ORDER BY distance
LIMIT 0 , 20;

关于php - SQL 连接与连接表中的 where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47369430/

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