2014-11-03 136 views
0

我有3個順序排定表MySQL的:選擇數據從多個表

Orders1

OrderNumber, TransactionID, TrackingNumber 

Orders2

OrderNumber, TransactionID, TrackingNumber 

Orders3

OrderNumber, TransactionID, TrackingNumber 

我的訂單顯示的總數不完整,所以我需要從哪裏TrackingNumber = ''

+0

你可以使用MySQL連接 – 2014-11-03 15:36:49

+0

究竟如何是與這些表?例如,是否可以通過相同的OrderNumber標識Orders1和Orders2行? – 2014-11-03 15:42:59

+0

他們沒有任何共同的結構。我們有來自3個不同來源的訂單,並存儲在不同的地方。一個是eBay,另一個就是亞馬遜。訂單號碼對錶格是唯一的。 – user4210292 2014-11-03 15:46:58

回答

0

您需要使用UNION表中進行選擇:

SELECT * FROM orders1 WHERE TrackingNumber = '' 
UNION 
SELECT * FROM orders2 WHERE TrackingNumber = '' 
UNION 
SELECT * FROM orders3 WHERE TrackingNumber = '' 
0

下面是一個使用子查詢的方法。

SELECT 
    (SELECT COUNT(*) FROM Orders1 WHERE TrackingNumber='') 
    + (SELECT COUNT(*) FROM Orders2 WHERE TrackingNumber='') 
    + (SELECT COUNT(*) FROM Orders3 WHERE TrackingNumber='') 
AS `total` 
FROM DUAL; 

告訴我,如果它按預期工作:)

值得一說的是,你應該指數TrackingNumber領域。

0

試試這個:

select 
    sum(a.subtotal) 
from 
    (select count(*) as subtotal from Orders1 where TrackingNumber='' 
    union all 
    select count(*) as subtotal from Orders2 where TrackingNumber='' 
    union all 
    select count(*) as subtotal from Orders3 where TrackingNumber='' 
    ) a