Mysql Full Outer加入临时表

Joe*_*Joe 3 mysql join temp-tables

关于mysql(5.1.36)中的完全加入有很多问题.当然,解决方案是join-union组合.

我的问题是我有两个这样的临时表:

CREATE TEMPORARY TABLE wConfs
(
    idWorker INT,
    confs SMALLINT
) ENGINE=INNODB;

CREATE TEMPORARY TABLE wRejects
(
    idWorker INT,
    rejects SMALLINT
) ENGINE=INNODB;
Run Code Online (Sandbox Code Playgroud)

JOIN-UNION mix不能用于完全连接临时表,因为它会导致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);
Run Code Online (Sandbox Code Playgroud)

Dev*_*art 5

尝试idWorker使用两个表中的不同值创建第三个临时表,然后在JOIN-UNION混合中使用它,例如 -

CREATE TEMPORARY TABLE all_id
  SELECT idWorker FROM wConfs UNION SELECT idWorker FROM wRejects;

SELECT t.idWorker, c.confs, r.rejects FROM all_id t
LEFT JOIN wConfs c
  ON t.idWorker = c.idWorker
LEFT JOIN wRejects r
  ON t.idWorker = r.idWorker;
Run Code Online (Sandbox Code Playgroud)