SQL从一个表中选择两个列,由另一个表中的列转换

时间:2013-10-17 21:04:07

标签: sql sql-server sql-server-2005

我有表ID,名字和姓氏。我还有一张儿童和父母的桌子。我想使用ID表将children / parent表从int转换为nvarchar。在这个例子中,我们有两个人,Mark和Ray Smith。雷是马克的父母。雷没有父母。

People_Table  
ID|First|Last  
--+-----+----  
0 |NULL|NULL  
10|Mark|Smith  
15|Ray |Smith  

Parent_Child_Table  
Child|Parent  
-----+------  
10   | 15  
15   | 0

我想要

First|Last|First|Last  
-----+-----+----+-----  
Mark|Smith|Ray|Smith  
Ray|Smith|NULL|NULL

我尝试过使用INNER JOIN,但这只会给我一些孩子的名字。使用两个select语句获取一个所有人的列表,但不保持结构。有什么想法吗?

对于丑陋的编辑(或缺乏编辑)感到抱歉,这是我第一次在这里发帖,我很急。我希望这不会令人困惑。

1 个答案:

答案 0 :(得分:2)

select p.first, p.last, c.first, c.last
from parent_child_table pc 
inner join people_table p on p.id = pc.parent
inner join people_table c on c.id = pc.child