Ich habe diese Anfrage:MySQL, kommen viele zu viele Beziehung Abfrage
SELECT
GROUP_CONCAT(DISTINCT
`persons`.`name`,
'[START_Name_END]',
`persons`.`id`,
'[START_Id_END]',
`persons`.`isteacher`,
'[START_IsTeacher_END]'
SEPARATOR '[START_ROWSEPERATOR_END]') AS persons_values,
`locations`.`name` AS locations_name,
`locations`.`id` AS locations_id
FROM `locations`
INNER JOIN `locations_persons` ON `locations_persons`.`location_id` = `locations`.`id`
INNER JOIN `persons` ON `persons`.`id` = `locations_persons`.`person_id`
GROUP BY `locations`.`id`
ORDER BY `locations`.`id`
Der Grund, warum ich GROUP_CONCAT
ist alle Zeilen aus persons
Tisch zu bekommen, die Referenz in der Zuordnungstabelle haben, in der gleichen Spalte
Ich verwende [START_Name_END], [START_Id_END]
, um das Ergebnis später in meinem Code und [START_ROWSEPERATOR_END]
zu teilen, um festzustellen, ob es die gleiche Zeile oder eine neue Zeile ist.
Alles funktioniert soweit ganz gut.
Die Sache ist, wenn irgendeine Reihe in locations
Tabelle keinen Bezug auf irgendeine Reihe in persons
Tabelle hat, bekomme ich NICHT diese Reihe in den Resultaten!
Ich glaube, dass das Problem in JOIN
ist, was soll ich verwenden, um alle Zeilen unabhängig davon abzurufen, ob diese Zeile Verweis in der Zuordnungstabelle hat oder nicht?
Jede Hilfe würde sehr geschätzt werden!
Fügen Sie Ihrer Abfrage einige Zeilenumbrüche hinzu –
Ihr Code ist nicht lesbar. Bitte formatieren Sie richtig. Wahrscheinlich versuchen Sie 'LEFT JOIN'. – Eric
Habe ich, Hoffentlich ist es jetzt besser lesbar! Jeffs Lösung funktionierte, aber ich frage mich nur, ob es in einem anderen Szenario ein Problem verursachen könnte – Niroda