2011-10-10 82 views
0

我在我的数据库中有一个表称为字符。它跟踪角色ID,姓名,已婚,和父亲ID。 “marriedto”是他们与之结婚的人物的人物ID,“父亲ID”是该人物父亲的人物ID。SQL连接,3x本身?

我想在SQL中做一个连接语句,它将拉出所有三个名字。 所以我的表可能是这样的:

CharID CharName marriedto fatherID 
1  Jeremy 2   3 
2  Sarah 1   4 
3  Charles 5   6 

我想运行一个查询,沿着这些线路

Jeremy, Sarah, Charles 

返回的东西我能得到自己一个加盟的事情发生,如果我想让它给我只有两个名字,但三个逃避我。

这工作了两个..

"SELECT C1.name AS spouse1, C2.name AS spouse2 
     FROM characters AS C1 
      JOIN characters AS C2 
       ON C1.marriedto= C2.characters_ID"; 

而且我已经尝试此三个,但它不工作。

"SELECT C1.name AS spouse1, C2.name AS spouse2 C3.name AS father 
     FROM characters AS C1 
      JOIN characters AS C2 
       ON C1.marriedto= C2.characters_ID 
      LEFT JOIN characters AS C3 
       ON C1.fathersID = C3.characters_ID" 

我该如何做这个三连接只有一个表?

+1

你试过的查询怎么样都行不通?您是否收到错误讯息?您的三连接查询示例至少有一个语法错误,我可以看到 - “AS spouse2”后面缺少逗号。此外,查询与您的数据模型列名称不匹配,但这可能不是或可能不是您问题的一部分 –

+0

这看起来像是一个奇怪的WHERE条件 – Paul

回答

0

您的查询结果很好..我只能看到在spouse2C3.name之间缺失的逗号。

+0

geez,总是很简单。谢谢! – jeremy