2017-07-07 52 views
-1

3臺在這裏如何避免重複值的查詢表

T1:

Id a 
1 100 
1 600 
2 800 

T2:

Id b 
1 600 
2 700 
3 400 

T3:

Id c 
2 400 
3 800 
4 100 

下面的SQL代碼運行。 ...

SELECT t.id, t1.a, t2.b, t3.c 
FROM (((select id 
     from t1 
     union 
     select id 
     from t2 
     union 
     select id 
     from t3) AS t 
     LEFT JOIN t1 ON t.id = t1.id) 
    LEFT JOIN t2 ON t.Id = t2.Id) 
LEFT JOIN t3 ON t.Id = t3.Id; 

得到結果和重新編寫這樣

id a  b  c 
1 600  600 400 
1 100  600 400 
2 800  700 
3   400 800 
4   100 

重複的值,但我想避免造成下面這樣的重複值:

Id  a  b  c 
1 100  600 400 
1 600  -  - 
2 800  700  -   
3  -  400 800 
4  -  -  100 

普萊斯幫助.........

+0

我看到的樣本數據,我看到試着查詢,我看到的結果和預期的結果,但我沒有看到一個問題... – HoneyBadger

+0

如何決定哪些ID = 1點的行分配b和c的值? – jarlh

+0

標記您正在使用的dbms。 – jarlh

回答

0

這個怎麼樣?

WHERE t1.a <> t2.b 
AND t1.a <> t3.c 
AND t2.b <> t3.c