2013-08-25 26 views
2

一直在寻找这个,但我还没有找到解决方案。可以说我有一个桌子的人和一辆桌上的汽车。一个人可以有很多车。表人看起来是这样的:SQL:使用数据作为列

ID Name 

表汽车看起来像这样:

ID P_ID Car_Brand PlateNum 

汽车能有这样的值:

ID:1 
P_ID:1 
Car_Brand:Toyota 
PlateNum: 12345 


ID:2 
P_ID:1 
Car_Brand:Ford 
PlateNum:456789 

我想创建一个查询,将有此结果:

person.id person.name ford.platenum toyota.platenum 
    1   John   456789  12345 

一个人将永远拥有这2个汽车品牌。感谢任何帮助,谢谢!

+0

为什么要这样做?我不认为这是一个好主意。本主题可能会帮助你,虽然:http://stackoverflow.com/questions/2208197/sql-select-a-dynamic-number-of-rows-as-columns – supertopi

+0

嗨,表结构是僵化的,不能更新架构。如果它被标准化了,这很容易,但目前这个问题不适用 – Jay12

回答

0
select 
    p.id, 
    name, 
    ford.platenum, 
    toyota.platenum 
from 
    person p 
    join cars ford on p.ID = ford.P_ID and ford.Car_Brand = 'Ford' 
    join cars toyota on p.ID = toyota.P_ID and toyota.Car_Brand = 'Toyota' 
+0

这只适用于如果唯一的汽车是丰田和福特。如果你推出另外20个汽车品牌,会发生什么? – supertopi