我有5個表中的結構相同。只有PAGEVISITS
字段是唯一的MySQL LEFT加入顯示不正確的數據
即。表1:
ITEM | PAGEVISITS | Commodity
1813 50 Griddle
1851 10 Griddle
11875 100 Refrigerator
2255 25 Refrigerator
即,表2:
ITEM | PAGEVISITS | Commodity
1813 0 Griddle
1851 10 Griddle
11875 25 Refrigerator
2255 10 Refrigerator
我希望它加起來Commodity
吐出:
table1 | table2 | Commodity
60 10 Griddle
125 35 Refrigerator
一些數據實際上是正確的,但有些遙遠給出以下查詢:
SELECT
SUM(MT.PAGEVISITS) as table1,
SUM(CT1.PAGEVISITS) as table2,
SUM(CT2.PAGEVISITS) as table3,
SUM(CT3.PAGEVISITS) as table4,
SUM(CT4.PAGEVISITS) as table5,
(COUNT(DISTINCT MT.ITEM)) + (COUNT(DISTINCT CT1.ITEM)) + (COUNT(DISTINCT CT2.ITEM)) + (COUNT(DISTINCT CT3.ITEM)) + (COUNT(DISTINCT CT4.ITEM)) as Total,
MT.Commodity
FROM table1 as MT
LEFT JOIN table2 CT1
on MT.ITEM = CT1.ITEM
LEFT JOIN table3 CT2
on MT.ITEM = CT2.ITEM
LEFT JOIN table4 CT3
on MT.ITEM = CT3.ITEM
LEFT JOIN table5 CT4
on MT.ITEM = CT4.ITEM
GROUP BY Commodity
我相信這可能是由於錯誤地使用了LEFT JOIN
導致的。我也嘗試了INNER JOIN
,結果相同。
您應該使用'完全外部連接',這在MySQL中不可用。嘗試使用'left outer join'和'right outer join'並將其與'union'結合使用。 – 2012-07-17 15:39:34
你目前獲得什麼結果? – Jocelyn 2012-07-17 15:45:11