Ich brauche eine Abfrage wie ausgeführt:MySQL Ergebnisse als durch Kommata getrennte Liste
SELECT p.id, p.name,
(SELECT name
FROM sites s
WHERE s.id = p.site_id) AS site_list
FROM publications p
Aber ich möchte die Unterauswahl eine durch Kommata getrennte Liste zurückzukehren, anstatt eine Spalte von Daten. Ist das überhaupt möglich, und wenn ja, wie?
toll es für mich Dank gearbeitet !!!!! – Devjosh
Wenn Sie PHPMyAdmin verwenden und eine kommagetrennte Liste auf der Seite ausgeben möchten, verwenden Sie 'GROUP_CONCAT (CAST (s.name AS CHAR))' oder sonst wird etwas zurückgegeben, das völlig unbrauchbar ist wie ' [BLOB - 20 Bytes] '. – devios1
Die Absicht ist in Ordnung und MySQL wird dies erlauben, aber seien Sie vorsichtig (allgemein) mit Ihrer Verwendung von GROUP BY. Die Elemente in der Auswahlliste müssen im Kontext der GROUP BY-Klausel gültige Aggregate sein. In diesem Fall ist p.name nicht streng gültig. Jede Datenbank, die dem SQL-Standard entspricht, behandelt dies als Fehler. In diesem Fall verwenden Sie entweder MAX (p.name) in der Auswahlliste oder fügen p.name zur GROUP BY-Klausel hinzu. Da Paul wahrscheinlich p.id bedeutet, um einen primären oder eindeutigen Schlüssel darzustellen, hat das Hinzufügen von p.name zur GROUP BY-Klausel keine Auswirkungen auf das Endergebnis. –