SQL使用相同的代码表为两个不同的列

时间:2013-04-24 16:59:54

标签: sql

我有一个表(Foo),它有两列存储代码表中的代码值:

id - code1 - code2
1  -  CC    -  DD

代码表:

  Name         -   Code - Grouping
 Call Center   -    CC  -    22
 County        -    DD  -    54

我需要一个基于第一个表格的“呼叫中心”和“县”的SQL。假设我知道Foo.code1必然使用Codes.Grouping = 22而Foo.code2使用Codes.Grouping = 54。

我正在尝试编写一个将返回两个值的SQL。

2 个答案:

答案 0 :(得分:2)

尝试此查询:

select name from codes c inner join foo f on c.code = f.code1 or c.code = f.code2

这是sqlfiddle

答案 1 :(得分:0)

我不确定这是否是你问题的答案,因为我不确切地知道你的意思。但是,我想你想要获得Foo表的id值的代码和分组。为此,我会

SELECT Foo.id, 
       C1.Name AS code1_name, C1.Code AS code1_code, 
       C1.Grouping AS code1_grouping, 
       C2.Name AS code2_name, C2.Code AS code2_code, 
       C2.Grouping AS code2_grouping 
  FROM Foo 
       INNER JOIN Codes AS C1 ON C1.Code = Foo.code1 
       INNER JOIN Codes AS C2 ON C2.Code = Foo.code2
  WHERE Foo.id = 1;

扩展tuffkid sqlfiddle sqlfiddle