在SELECT语句中从一个表连接单独的列

时间:2011-08-07 00:14:54

标签: mysql sql join

我一直在努力解决这个问题3个小时。我知道我可以通过将数据放在两个不同的表中来解决问题,但是由于数据本质上是链接的,它会使对象失败,我知道答案很简单但是已经尝试了所有方法来使其在许多链接/示例之后工作但是发现很难理解这个例子与我的问题有什么关系。

这不是实际的SQL,但会准确说明我要做的事情。这是一个mySQL数据库。

playerName = Johan Djourou
nationality = Côte d'Ivoire
playsFor = Switzerland

tbl_Soccer_Player
playerID,
playerName,
nationalityID,
playsForID,
CONSTRAINT fk1 FOREIGN KEY (nationalityID) REFERENCES tbl_nationality(notionalityID),
CONSTRAINT fk2 FOREIGN KEY (playsForID) references tbl_nationality(notionalityID)

tbl_nationality
nationalityID
nationality // french, spanish, belgian
country // france, spain, belgium

SELECT playerName, nationality, country FROM tbl_Soccer_Player
JOIN tbl_nationality ON tbl_Soccer_Player.nationalityID = tbl_nationality.nationalityID

...现在,当他们来自同一张桌子时,我该如何加入该县?

非常感谢, 标记

PS。我曾经通过使用Microsoft Access GUI查询构建器来解决这类问题,现在可以在Linux Ubuntu上进行查询。我会寻找一个基于Linux的应用程序来做到这一点但是有人知道一个好用的吗?

1 个答案:

答案 0 :(得分:2)

您使用同一个表进行另一次连接,并使用别名将它们区分开来:

SELECT playerName, n.nationality, p.country
FROM tbl_Soccer_Player
JOIN tbl_nationality as n ON tbl_Soccer_Player.nationalityID = n.nationalityID
JOIN tbl_nationality as p ON tbl_Soccer_Player.playsForID = p.nationalityID