2010-03-13 16 views
5

varsayalım ben olabilen bir alanla tablo A sahip 1 veya 2 ... Ben masa A'da her satır için, alan ise böyle nasıl seçerimSQL satır bilgiye bağlı olarak farklı tablolar katılmak

1, tablo B ile seçime katılın ve alan 2 ise, tablo C ile seçime katılın? Böyle

+0

çalışabilirsiniz! StackOverflow, gelmiş geçmiş en iyi çevrimiçi topluluktur! Teşekkürler çocuklar! – xster

cevap

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

Iyi cevap elektrik lehçesi – Enrique

0

Somethine elbette, vay

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 
İlgili konular