[英]sql join 2 rows in the same table
我有下表:
Name Type Value
---------------------
mike phone 123
mike address nyc
bob address nj
bob phone 333
我想要這樣的結果:
name value value
-------------------
mike nyc 123
bob nj 333
我該怎么做?
它被稱為自聯接。 訣竅是使用別名。
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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.