我有下表:
Name Type Value
---------------------
mike phone 123
mike address nyc
bob address nj
bob phone 333
Run Code Online (Sandbox Code Playgroud)
我想得到这样的结果:
name value value
-------------------
mike nyc 123
bob nj 333
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
cdo*_*ner 17
它被称为自我加入.诀窍是使用别名.
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')
Run Code Online (Sandbox Code Playgroud)
该查询假定每个名称都有一个地址,但电话号码是可选的.