-1

我有一个表(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。

4

2 回答 2

2

试试这个查询:

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

这是sqlfiddle

于 2013-04-24T17:08:29.840 回答
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

于 2013-04-24T17:11:26.600 回答