我有两个表:邮政编码和客户。
ZipCodes 有lng
和列lat
,客户有zipcode
.
我需要一个查询来让所有客户都拥有一定距离的XXXXX
邮政编码。
我有一个查询要获取 XXXXX 一定距离内的所有邮政编码:
SELECT ZIPCODE,( 3959 * ACOS( COS( RADIANS( $la ) ) * COS( RADIANS( LAT ) ) * COS( RADIANS( LNG ) - RADIANS( $lo ) ) + SIN( RADIANS( $la ) ) * SIN( RADIANS( LAT ) ) ) ) AS distance
FROM ZipCodes
HAVING distance <$rad
ORDER BY distance
LIMIT 0 , 20
我只是不知道连接是如何工作的,或者如何用 SQL 来表达。如果您能解释提供的任何答案,我也将不胜感激。如果不是我也明白。
我的逻辑是这样的:
SELECT name FROM Customers WHERE Customers.zipcode = ( SELECT ZIPCODE,( 3959 * ACOS( COS( RADIANS( $la ) ) * COS( RADIANS( LAT ) ) * COS( RADIANS( LNG ) - RADIANS( $lo ) ) + SIN( RADIANS( $la ) ) * SIN( RADIANS( LAT ) ) ) ) AS distance
FROM ZipCodes
HAVING distance <$rad
ORDER BY distance
LIMIT 0 , 20)