Weiter Zurück [Inhalt] Online Suche im Handbuch

17.3 UNION

UNION ermöglicht bei Subselects die Verknüpfung von Mengen miteinander. Da MySQL und ACCESS keine Subselects unterstützen, sind auch UNION´s nicht notwendig:

In ANSI SQL 92 werden Mengen so verknüpft:

SELECT db1.tabelle ..... 
UNION 
SELECT db2.tabelle .... 
ORDER BY name

Das funktioniert so bei MySQL nicht. Im Grunde wird bei dem Statement UNION in anderen Datenbanken durch den Pre-Prozessor ebenfalls eine temporäre Tabelle angelegt, nur, daß der User davon nichts merkt.

Bei MySQL muß stattdessen eine schnelle, temporäre Tabelle angelegt werden, die bei den neuen MySQL Versionen im RAM angelegt, und evtl. auch automatisch auf den Swap-Speicher ausgelagert wird. Hierzu sehen Sie bitte im Kapitel CREATE und dort bei table_options nach. Darin ist eine Option HEAP erwähnt, die superschnelle Tabellen im RAM anlegt. Das Statement SET, in Kapitel SET ermöglicht Tuning während der Laufzeit.

CREATE TABLE tmp1 (tabelle ....); 
INSERT INTO tmp1 SELECT db1.tabelle .....; 
INSERT INTO tmp1 SELECT db2.tabelle .... ; 
SELECT * FROM tmp1 WHERE ... ORDER BY name; 

Danach kann man entweder die ganze Tabelle Löschen, oder nur deren Inhalte, damit man diese nochmal verwenden kann.


Weiter Zurück [Inhalt] Online Suche im Handbuch