programing

sql join 같은 테이블에 행 2개를 연결합니다.

easyjava 2023. 9. 26. 22:41
반응형

sql join 같은 테이블에 행 2개를 연결합니다.

저는 다음 표를 가지고 있습니다.

Name   Type     Value
---------------------
mike   phone    123    
mike   address  nyc    
bob    address  nj    
bob    phone    333

나는 다음과 같은 결과를 얻고 싶습니다.

name  value  value
-------------------
mike  nyc    123
bob   nj     333

어떻게 하면 되죠?

그것은 자기 join이라고 불립니다.별칭을 사용하는 것이 요령입니다.

select 
    address.name,
    address.value as address,
    phone.value as phone
from
    yourtable as address left join
    yourtable as phone on address.name = phone.name
where address.type = 'address' and
      (phone.type is null or phone.type = 'phone')

쿼리는 각 이름에 주소가 있다고 가정하지만 전화 번호는 선택 사항입니다.

이와 같은 것:

SELECT a.name AS name, phone, address
    FROM (SELECT name, value AS phone FROM mytable WHERE type = "phone") AS a
    JOIN (SELECT name, value AS address FROM mytable WHERE type = "address") AS b
    ON(a.name = b.name);

언급URL : https://stackoverflow.com/questions/6614867/sql-join-2-rows-in-the-same-table

반응형