Ralf Walther: Subselect + Insert bei MySql

Beitrag lesen

Hallo Uwe

in
 insert into Tab3 select concat(concat(data,'|'),count(data))  as treffer from Tab1 where data in (select data from Tab2) group by data

bedeutet

  1. insert ... : ist, wie Du sagst klar
  2. das select in Klammern selektiert alle Werte aus Tab2
  3. das äußere Select selektiert sowohl die data-Werte als auch ihre Häufigkeit in Tab1, wobei nur die Werte gesucht werden, die in Tab2 vorkommen (siehe 2) )
  4. Über concat werden Strings aneinandergekettet, daher ergibt concat(concat(...)) den String, den du wolltest, d.h. z.B. xyz|2, wenn xyz in Tab1 zweimal vorkam
  5. der Wert aus 4) (der komplette String) wird unter dem Feldnamen "treffer" selektiert, dementsprechend muß der Feldname in Tab3 sein

Ich hoffe, das hat Dir geholfen,

Gruß

Ralf