⊗ppPmDOGD 382 of 447 menu

PHP에서 관련 테이블 데이터 가져오기

사용자와 그들의 도시를 함께 가져오는 쿼리를 만들어 봅시다. 이를 위해서는 LEFT JOIN 명령어가 필요합니다:

이 명령어의 구문은 다음과 같습니다:

SELECT 필드 FROM 테이블_이름 LEFT JOIN 관련_테이블_이름 ON 연결_조건 WHERE 선택_조건

이 명령어 구문의 개별 부분들을 살펴봅시다.

필드

여러 테이블에서 선택을 하기 때문에, *를 통한 모든 필드 선택은 작동하지 않습니다. 다음 쿼리는 메인 테이블의 필드만 선택하고, 관련 테이블의 필드는 선택하지 않습니다:

SELECT *

모든 테이블에서 데이터를 선택하려면, * 앞에 선택할 테이블 이름을 지정해야 합니다:

SELECT users.*, cities.*

또는 테이블 이름을 앞에 지정하여 필요한 필드를 나열할 수 있습니다:

SELECT users.name, cities.name

이 두 가지 방법에는 문제가 있습니다. 사실은, 테이블의 필드 이름이 같다면 PHP 배열에서 이름 충돌이 발생하고 하나의 필드만 남게 되어 두 번째 필드는 사라집니다.

이 문제를 해결하려면 충돌하는 이름을 as 명령어를 통해 변경해야 합니다:

SELECT users.name, cities.name as city_name

연결

ON 명령어 뒤에는 두 테이블 간의 연결이 이루어지는 필드를 지정해야 합니다. 우리의 경우 이는 도시 테이블의 id 필드와 사용자 테이블의 city_id 필드입니다:

ON cities.id=users.city_id

쿼리

결과적으로, 사용자와 그들의 도시를 함께 가져오는 쿼리는 다음과 같이 보일 것입니다:

SELECT users.name, cities.name as city_name FROM users LEFT JOIN cities ON cities.id=users.city_id

실습 문제

상품 테이블과 그 카테고리 테이블이 있다고 가정합니다. 상품 이름과 그 카테고리를 함께 가져오는 쿼리를 작성하세요.

한국어
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақКыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부