2011-10-17 51 views
-2

對於ID = 101的數據來自不同的表來內部連接或UNION

所有表有一個ID列

  Name  Income  
Table_A  a  $6,868  
Table_B  b  $4,443 
Table_C  c  $6,726  
Table_D  d  $10,163  
Table_E  e  $4,853 
Table_F  f  $3,368 

要獲得導致像上面我應該使用UNION或INNER JOIN?

TABLE_A 

ID NAME INCOME 
101 a $6,868  


TABLE_B 

ID NAME INCOME 
101 b $4,443  

像其他表

所以我應該使用內部連接或UNION這裏?

+1

這裏沒有足夠的信息來理解你在問什麼,更不用說回答了! – Widor

+0

你可以給你的表結構嗎? – Fred

+0

看起來你的設計結構有點偏離。表A應該是ID(自動增量),其他ID(在這種情況下是101),名稱,收入。 – tsells

回答

2

如果行X僅由在表X尋找計算,然後UNION是使用正確的工具。

+0

你會在每個SELECT上做一個WHERE ID = 101嗎? SELECT a.Income from Table_A a WHERE a.ID = 101 UNION ...?或者,即使最後一個WHERE,SQL也會優化它? – mikey

+1

@mikey:我會做多個'SELECT ... WHERE',然後'聯合'他們在一起。 – NPE

+0

正確的,謝謝,我想這個性能可以和內部連接方法大致相當? – mikey

1

這是一種奇怪的方式來進行數據庫設計,但是您可以使用INNER JOIN進行此類查詢。

喜歡的東西:

select * 
from table_a a 
inner join table_b b 
on a.ID = b.ID 
inner join table_c c 
on a.ID = c.ID 
inner join table_d d 
on a.ID = d.ID 
inner join table_e e 
on a.ID = e.ID 
inner join table_f f 
on a.ID = f.ID 
where a.ID = 101 

不知道更多關於你的現有表的結構,這是很難給你的使用更具體的查詢。