두 개의 테이블, 설정 및 분기가 있습니다. Establishment가 상위 테이블입니다. 지점 목록을 선택하면 지점 제목이 비어 있으면 식당 이름을 검색해야합니다. 또한, 나는 단지 한 식당에 한 번씩 지점을 보여주고 싶다. 이것은 내가 생각해 낸 것입니다 :ORDER BY가 GROUP BY와 함께 작동하지 않음
SELECT
branch.id
, branch.establishment_ID
, IFNULL(branch.branch_title, establishment.name) AS branch_title
FROM branch
LEFT JOIN establishment ON branch.establishment_ID = establishment.id
WHERE cityID = 2
GROUP BY establishment_ID
ORDER BY branch_title
그러나 결과는 특정 순서로 나타나지 않습니다. 나는 그들이 알파벳 순서대로되기를 바란다. 나는 MySQL 5.0.5가 GROUP BY와 ORDER BY에 동일한 쿼리에서 문제가 있다는 것을 읽었지만 5.5.9로 작업하고있다. 이 쿼리를 수정하려면 어떻게해야합니까?
그룹은 불확정합니다. 그게 네 문제 다. 전체 쿼리가 의미가 없으므로 관련없는 행의 데이터가 혼합된다. – Johan
branch.id 및 establishment_id에 집계 함수를 사용하고 있지 않습니다. 여러 개의 establishid 또는 분기 ID가있는 경우 그룹화 할 때 선택되는 집계 함수 (예 : max)를 제공해야합니다. – macleojw
3, 비 집계, branch.id, branch.establishment_ID, branch_title 중 하나만 선택합니다 (mysql이 불평하지 않지만 유효하지 않습니다). 3 명 모두를 그룹화해야합니다. – nos