> 데이터 베이스 > MySQL 튜토리얼 > MySQL에서 여러 테이블을 조인할 때 중복 행을 방지하는 방법은 무엇입니까?

MySQL에서 여러 테이블을 조인할 때 중복 행을 방지하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-12-06 07:14:14
원래의
837명이 탐색했습니다.

How to Avoid Duplicate Rows When Joining Multiple Tables in MySQL?

MySQL에서 여러 테이블로 JOIN

문제:
아무것도 지정하지 않고 단순 JOIN을 사용하여 MySQL에서 여러 테이블에서 데이터를 선택할 때 조건에 따라 일치하는 각 키에 대해 여러 행이 결합되어 중복 행이 발생할 수 있습니다. 이러한 중복 항목을 제거하고 모든 관련 사진을 포함하여 각 음료에 대한 고유 행을 검색하려면 어떻게 해야 합니까?

해결책:
이 문제를 해결하려면 그룹화 및 집계 기능을 활용해야 합니다. 중복된 행을 결합하고 그 중에서 원하는 값을 선택합니다.

먼저 행을 drink_id별로 그룹화하여 각각에 대해 하나의 행만 얻습니다. drink:

SELECT name, price, photo
FROM drinks, drinks_photos
WHERE drinks.id = drinks_id 
GROUP BY drinks_id
로그인 후 복사

이 접근 방식은 음료당 하나의 사진만 포함된 행을 반환합니다. 관련된 모든 사진을 포함하려면 GROUP_CONCAT 함수를 사용하여 사진 파일 이름을 단일 문자열로 연결할 수 있습니다.

SELECT name, price, GROUP_CONCAT(photo, ',')
FROM drinks, drinks_photos
WHERE drinks.id = drinks_id 
GROUP BY drinks_id
로그인 후 복사

이 쿼리는 고유한 음료 행과 모든 음료 행을 포함하는 연결된 문자열이 있는 테이블을 생성합니다. 각 음료의 사진 파일 이름입니다.

GROUP_CONCAT은 MySQL 전용 함수이며 다른 데이터베이스 시스템에서는 지원되지 않을 수 있습니다. 이러한 경우 하위 쿼리 또는 배열 데이터 유형과 같은 대체 접근 방식을 고려해야 할 수도 있습니다.

위 내용은 MySQL에서 여러 테이블을 조인할 때 중복 행을 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿