2013-04-24 61 views
-1

我有一個表(美孚),其具有從一個代碼表中存儲的代碼值兩列:SQL使用相同的代碼表對於兩個不同的列

id - code1 - code2 
1 - CC - DD 

的代碼表:

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

我需要一個SQL,它將根據第一個表格提取'Call Center'和'County'。假設我知道Foo.code1必須使用Codes.Grouping = 22,而Foo.code2使用Codes.Grouping = 54。

我想寫一個SQL將返回兩個值。

+0

目前尚不清楚你想給作爲輸入什麼,你有什麼期待找回 - 以及以何種形式(即一行或多行) – luksch 2013-04-24 17:21:30

回答

2

嘗試此查詢:

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

這裏是sqlfiddle

+0

+1爲sqlfiddle!不知道這項服務。我用你的小提琴擴大了我的答案! – luksch 2013-04-24 17:18:57

+0

我試圖編輯哪裏我得到一個結果集,有兩列。 – bmw0128 2013-04-24 17:59:58

+0

有意思的是,你接受了tuffkid的這個答案,在那裏你得到了兩列的一列......但很高興看到你得到了你想要的東西。 – luksch 2013-04-24 18:14:54

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

相關問題