Ich habe zwei Tabellen auf MYSQL, ich frage mich, ob es eine Aggregatfunktion auf MySQL als array_agg() FROM postgreSQL.MYSQL Array-Aggregat Funktion wie PostgreSQL array_agg
Tabelle 1: Eigenschaften haben nur 8 Aufzeichnungen Tabelle 2: Aufzeichnungen, die das Eigentum erfasst, so dass manchmal 1 sein kann oder n-mal für die gleiche Eigenschaft, und ich habe diese Qry:
SELECT p.id, pcb.users_admin_id as uid
FROM properties p
INNER JOIN prop_captured_by pcb ON p.id = pcb.property_id
-- GROUP BY p.id
id uid
200 1
200 80
202 1
202 80
211 1
211 10
211 81
215 10 ...
Wenn ich das verwenden GROUP BY Teil dieses erhalte ich:
id uid
200 1
202 1
211 1
215 10 ...
verlieren alle anderen Daten als der erste Wert für users_admin_id. Ich weiß, dass ich mein gewünschtes Ergebnis mit der Funktion array_agg() von postgreSQL erreichen kann, aber ich kann nicht herausfinden, wie man es auf MYSQL macht.
Das ist mein Wunsch Ergebnis:
id uid
200 1,80 //an array, I don't mind about the separator, could be anything.
202 1,80
211 1,10,81
215 10 ...
ich versucht habe, UNION, GROUP BY, INNER JOIN ... kein Glück ... Alle Zeiger?
UPDATE
ich die many to many relations von diesem Kerl verwenden. Hofft, dass es für jemand anderen nützlich ist. Ich brauchte den Namen des Benutzers aus einer dritten Tabelle hinzuzufügen, so dass die endgültige Abfrage sieht wie folgt aus:
SELECT p.id, group_concat(pcb.users_admin_id) as uid, group_concat(ua.name) as uin
FROM properties p
INNER JOIN prop_captured_by pcb ON p.id = pcb.property_id
INNER JOIN users_admin ua ON ua.id = pcb.users_admin_id
group by p.id;
funktioniert es für mich! –