Evo nesto drugaciji prustup, bez pomocne tabele.
U svaku do tabela se doda slog sa istim ID-om koji sluzi za filtriranje kao nepotreban.
Evo primera podataka. U ovom primeru je uzeot da slgo sa ID-om 0 sluzi za filtriranje. To znaci da ne sme da postoji slog koji koristi taj id.
Code:
DROP TABLE IF EXISTS t1;
CREATE TABLE `t1` (
`id` tinyint(3) unsigned default '0',
`desc1` varchar(10) default NULL
) ENGINE=MyISAM;
INSERT INTO t1 VALUES("1", "Val1-1");
INSERT INTO t1 VALUES("3", "Val1-3");
INSERT INTO t1 VALUES("5", "Val1-5");
INSERT INTO t1 VALUES("7", "Val1-7");
INSERT INTO t1 VALUES("8", "Val1-8");
INSERT INTO t1 VALUES("0", "zero");
DROP TABLE IF EXISTS t2;
CREATE TABLE `t2` (
`id` tinyint(3) unsigned default '0',
`desc2` varchar(20) default NULL
) ENGINE=MyISAM;
INSERT INTO t2 VALUES("2", "Val2-2");
INSERT INTO t2 VALUES("4", "Val2-4");
INSERT INTO t2 VALUES("6", "Val2-6");
INSERT INTO t2 VALUES("8", "Val2-8");
INSERT INTO t2 VALUES("0", "zero");
Code:
select IF(t1.id <> 0,t1.id,t2.id) AS tid, IF(t1.id <> 0,t1.desc1,t2.desc2) AS tdesc from t1,t2
WHERE (t1.id <> t2.id) AND ((t1.id = 0) OR (t2.id=0))
Mada ja i dalje mislim da je najelegantije uraditi select u privremenu tabelu. :)