Vinzenz Mai: WHERE-Abfrage nach Zahlen (getrennt mit Komma oder Semikolon)

Beitrag lesen

Hallo Tim,

ich würde das Ganze etwas anders lösen:

was heißt anders. Ein Einsteiger weiß noch nichts von Aggregatsfunktionen und der GROUP-BY-Klausel. Es gibt SQL-Dialekte, da darf man sich GROUP_CONCAT() selbst bauen :-(

Wer übers Einsteigerniveau hinaus ist, verwendet keine impliziten Joins mehr :-)

Also statt:

SELECT

t.ID,t.Text,GROUP_CONCAT(q.Quellenname SEPARATOR ', ') as Quellen
FROM
   texte t, quellen q, textquellen tq
WHERE
   t.ID=tq.textID AND
   tq.quellenID=q.QID
GROUP BY
   t.ID,t.Text

  
  
~~~sql
SELECT  
    t.id,  
    t.text,  
    [link:http://dev.mysql.com/doc/refman/5.1/en/group-by-functions.html#function_group-concat@title=GROUP_CONCAT](q.Quellenname SEPARATOR ', ') Quellen  
FROM  
    texte t  
INNER JOIN  
    text_quellen tq  
ON  
    t.id = tq.id_text  
INNER JOIN  
    quellen q  
ON  
    tq.id_quelle = q.QID  
GROUP BY  
    t.id,  
    t.text  

AS für Spaltenaliasnamen vermeide ich nur aus Kompatibilitätsgründen :-)

Freundliche Grüße

Vinzenz