如果以前有人问过这个问题,我很抱歉,但我似乎找不到任何(好的)答案。
我想这能更好地解释我的问题
CREATE TABLE posts (
id INT,
name VARCHAR(10)
);
INSERT INTO posts VALUES
(1, 'Product 1'),
(2, 'Product 2');
CREATE TABLE details(
id INT,
merchant VARCHAR(10),
address INT,
lat decimal(11,8) ,
lng decimal(11,8) ,
offer_group INT(10)
) ;
INSERT INTO details VALUES
(1, 'Merchant 1',10,40.444444,60.666666,1),
(2, 'Merchant 1',20,40.555555,60.777777,1);
SELECT P.*, D.* , MIN( 3959 * acos( cos( radians('40.555556') ) * cos( radians( D.lat ) ) * cos( radians( D.lng ) - radians('60.777778') ) + sin( radians('40.555556') ) * sin( radians( D.lat ) ) ) ) AS distance FROM posts P
JOIN details D ON D.id = P.id
WHERE 1=1 GROUP BY merchant ORDER BY distance ASC
http://sqlfiddle.com/#!9/7db78b/6我有单独的数据库,但示例链接准确地显示了表的链接方式和我当前的查询。
因此,在该示例中,如果您离开组的距离是距离地址为20的商户,但我希望看到正确的数据(id=2,name=product 2,address=20,lat=40.555555,lng=60.777777)
将组按部分移除,首先查看它的外观
谢谢,对不起,解释得不好
2条答案
按热度按时间wwwo4jvm1#
您可以使用以下查询,
fykwrbwg2#
您可以使用以下选项:
demo:http://sqlfiddle.com/#!9/6楼9676/1/0