DISTINCT
으로 쿼리를 작성했지만 여전히 중복 레코드가 반환됩니다.Distinct가 제대로 작동하지 않습니다.
SELECT DISTINCT
`cuisine_types`.`id`,
`cuisine_types`.`name`,
`cuisine_types`.`image`,
(
SELECT group_concat(`tagname` separator ', ')
FROM `cuisine_tags`
WHERE `cuisine_type` = `cuisine_types`.`id`
) AS tags,
(
3959 * acos(cos(radians(" . $dLat . ")) * cos(radians(gps_lat)) * cos(radians(gps_lon) - radians(" . $dLon . ")) + sin(radians(" . $dLat . ")) * sin(radians(gps_lat)))
) AS distance
FROM `company`
LEFT JOIN `cuisine_types`
ON
`company`.`cuisine_type_id` = `cuisine_types`.`id`
HAVING
distance < " .$dMiles
GROUP BY
기능을 사용해도 내 쿼리가 제대로 작동하지 않습니다.
GROUP BY `cuisine_types`.`name`
예 : 내가 GROUP BY
을 사용하는 경우 내 HAVING
위에 배치
을 나는이 값을 사용하는 경우 :
$dLat = '52.779716';
$dLon = '21.84803';
$iKm = '30';
그것은 반환
id = 1
name = Snackbar
image =
tags = Patat, Snacks
distance = 17.4713944772963
내가 $iKm
과 3000을 사용하면 이 행도 마찬가지입니다.
id = 1
name = Snackbar
image =
tags = Patat, Snacks
distance = 722.407714147792
두 레코드가 있습니다. groupby와 $iKm
= 30을 같이 사용하면 그것은 아무것도 반환하지 않습니다. 값이 3000이면 한 행을 반환합니다. 그러나 나는 30 마일 이하의 거리를 가진 17 마일의 기록을 가지고있다.
검색어에 별다른 의미가 없는데 제대로 작동하지 않습니다. –
쿼리에서 그룹을 볼 수 없으며 제대로 작동하지 않습니다. – Khez
죄송합니다. groupby가 최고 게시물을 확인하기 위해 뚜렷한 일없이 노력하고있었습니다. –