很多人对mysql(5.1.36)的全连接(join)提出了很多问题。当然,解决方案是使用连接联合(join-union)。
我的问题是,我有两个像这样的临时表(temporary tables):
CREATE TEMPORARY TABLE wConfs
(
idWorker INT,
confs SMALLINT
) ENGINE=INNODB;
CREATE TEMPORARY TABLE wRejects
(
idWorker INT,
rejects SMALLINT
) ENGINE=INNODB;
使用JOIN-UNION混合语句无法用于全连接临时表,因为会导致错误ERROR 1137 (HY000): Can't reopen table
。
我的问题是 - 如何最简单并具有最佳性能地实现临时表的完全连接?
编辑:JOIN-UNION 混合语句:
SELECT wc.idWorker, wc.confs, wr.rejects FROM wConfs wc LEFT JOIN wRejects wr
ON (wr.idWorker = wc.idWorker)
UNION
SELECT wc.idWorker, wc.confs, wr.rejects FROM wConfs wc RIGHT JOIN wRejects wr
ON (wr.idWorker = wc.idWorker);