2012-08-16 26 views
0

我有兩個表SELECT DISTINCT與JOIN和非標準化的表

id | name 
1  | foo 
2  | foo 
2  | foo  <- duplicated id 
3  | bar 

id | value 
1  | 100 
1  | 200 
2  | 300  <- same value and id 
2  | 300  <- 
3  | 500 

我需要從第二個表的行,一個名爲foo每個ID:

1  100 
1  200 
2  300 
2  300 

id/name表未規範化,我無法對此做任何事情。所以我需要從表1中選擇不同的ID,並從表2中選擇不同的ID /值。有沒有辦法做到這一點?

回答

2

您不指定您正在使用的SQL版本。以下內容應該適用於任何版本:

select tabl2.* 
from (select distinct id, name 
     from table1 
    ) join 
    table2 
    on table1.id = table2.id 
where table1.name = 'foo'