Oracle / pl sql内连接多列到表一列

时间:2012-12-21 01:29:48

标签: sql

我在加入2表时遇到问题让我说我在第一个表名国籍代码(这是数字)上有一个列,它取决于第一个表国籍代码获取描述(可能是美国,中国等)。所以我尝试了内部连接表,因此第一个内连接很好并且工作正常。

这是代码:

SELECT person.firstnm, person.middlenm, person.lastnm, refcd.description
FROM person
INNER JOIN refcd
ON person.natcd = refcd.id;

然而,当我尝试从第一个表加入第二列时,让我们说列名是gencd(性别代码是一个外键)但是当我从一个表更新查询到内连接2列时从一列获取值在第二个表中我得到了这个错误。 “栏目明确定义”我得到了这个错误,我明白我的问题是,无论如何要实现我想要的输出?我想加入2表,特别是将表1中的2列连接到表2中的1列。

这是我更新的查询:

SELECT person.firstnm, person.middlenm, person.lastnm, refcd.description
FROM person
INNER JOIN refcd
ON person.natcd = refcd.id
INNER JOIN refcd
ON person.gencd = refcd.id;

非常感谢帮助。

1 个答案:

答案 0 :(得分:1)

您的查询应该是

SELECT person.firstnm, person.middlenm, person.lastnm, refcd.description
FROM person INNER JOIN refcd ON person.natcd = refcd.id
INNER JOIN refcd R2 ON person.gencd = R2.id;