2010-01-15 110 views
0

這裏是我的表,這些表親子表記錄 - 構建SQL查詢

表名的數據:代碼

CID Code 
1 abc 
2 def 
3 xyz 

表名:詳細

ID Name CID 
1  a  1 
2  b  2 

結果表:

ID  Code Name 
1  abc  a 
2  abc  Null 
3  def  b 
4  def  Null 
5  xyz  Null 
6  xyz  Null 

我NNED從碼錶,並針對每一個代碼,我不得不從細節表中獲取所有的行獲得所有記錄,如果一些代碼有值自己的需要值,如果沒有的話空

謝謝

回答

3

聽起來你正在尋找的笛卡爾乘積:

SELECT 
    c.CID * d.ID AS ID, 
    c.Code, 
    CASE 
     WHEN c.CID = d.CID THEN d.Name 
     ELSE NULL 
    END AS Name 
FROM Code c 
CROSS JOIN Details d 

雖然笛卡兒積較大的桌子相當緩慢......所以要確保這是你真正想要的。