제공하는 서비스가있는 판매자 이름 및 필드 필드가있는 표가 있습니다. 서비스 필드는 서비스 ID 및 서비스 이름 필드가있는 다른 서비스 테이블과 관련된 쉼표로 구분 된 정수 목록입니다.mySql - 쉼표로 구분 된 값 목록을 사용하여 조인 만들기
저는이 둘을 조인하는 단일 쿼리를 만들려고합니다. 따라서 서비스 이름과 함께 상인 목록을 가질 수 있습니다. 내 솔루션 지금까지 내 초기 'foreach'루프 내에서 두 번째 루프를 할 수 있지만 각 상인 이름 5 또는 6 db 호출을 의미 할 수 있습니다.
일부 StackOverflowing (google-ing) 후 쉼표로 구분 된 필드를 사용하는 것이 최선의 방법이 아님을 확인했습니다.
누구나 가입 할 수있는 방법이 있습니까? 아니면 DB 구조가 더 잘 설정 될 수 있을지 생각하는 사람이 있습니까? 미리 많은 감사드립니다! - 열이 쉼표로 구분 한 목록 포함 할 수 없습니다
SELECT *
FROM MERCHANT m
JOIN SERVICES s ON FIND_IN_SET(s.service_id, m.services) > 0
장기적인 해결책은 테이블을 수정하는 것입니다
이 완벽합니다. 감사! 서비스 목록만으로 세 번째 테이블을 얻었지만 꽤 간단한 가입이어야합니다. – TerryMatula
@Marcus Adams이 솔루션은 지정된 경우에 완벽합니다. 모든 콤마 뒤에 공백이 필요한 경우에는 어떻게해야합니까? – Devner