Michael Schröpl: Doppelte Datensätze in MySQL

Beitrag lesen

Hi,

SELECT DISTINCTROW [alte_tabelle].* INTO [neue_tabelle]
FROM [alte_tabelle];
Das hab ich ja noch nie gesehen!

Da kannste mal sehen, was so alles in diesen Handbüchern drin steht.

Ich dachte in MySQL geht immer nur eine Abfrage???

Das ist ja auch nur eine Abfrage (nicht zwei Abfragen ;-).

Was ist das?

Eine alternative Schreibweise für
INSERT INTO [neue_tabelle]
     SELECT DISTINCTROW [alte_tabelle].* FROM [alte_tabelle];

Wenn Du es so herum notierst, dann siehst Du, daß das eigentliche
Statement ein INSERT ist und kein SELECT.
Aber die Menge der Datensätze, die eingefügt werden soll, kann selbst
durchaus das Ergebnis einer Abfrage sein.
 (http://www.mysql.com/doc/I/N/INSERT_SELECT.html)
Diese Art des "Subselect" kann mySQL.

Ein Subselect in eine WHERE-Bedingung eines weiteren SELECT einspeisen
(SELECT * from x WHERE x.feld IN (SELECT ...) kann mySQL nicht.

Viele Grüße
      Michael