2010-03-13 25 views
5

假設我有表A,其中的字段可以是1或2 ...SQL根據行信息加入不同的表

如何選擇對於表A中的每一行如果字段爲1,加入與表B的選擇,如果該字段是2,加入選擇與表C?

+0

哇,當然! StackOverflow是有史以來最好的在線社區! 謝謝你們! – xster 2010-03-13 23:35:34

回答

8
(
SELECT MyField1, MyField2 FROM A 
INNER JOIN B ON A.Id = B.Id 
AND A.MyField = 1 
) 
UNION 
(
SELECT MyField1, MyField2 FROM A 
INNER JOIN C ON A.Id = C.Id 
AND A.MyField = 2 
) 
+0

電子方言很好回答 – Enrique 2010-03-13 23:34:55

0

Somethine這樣可以工作

DECLARE @TableA TABLE(
     ID INT 
) 

DECLARE @TableB TABLE(
     ID INT, 
     Val VARCHAR(50) 
) 

DECLARE @TableC TABLE(
     ID INT, 
     Val VARCHAR(50) 
) 

INSERT INTO @TableA SELECT 1 
INSERT INTO @TableA SELECT 2 

INSERT INTO @TableB SELECT 1, 'B' 

INSERT INTO @TableC SELECT 2, 'C' 

SELECT * 
FROM @TableA a INNER JOIN 
     @TableB b ON a.ID = b.ID 
        AND a.ID = 1 
UNION 
SELECT * 
FROM @TableA a INNER JOIN 
     @TableC c ON a.ID = c.ID 
        AND a.ID = 2