Ich habe 10 Tabellen, die zwischen ihnen mit Elternschlüsseln kommunizieren und ich versuche, alle Informationen herauszuziehen, die ich brauche.SQL: SELECT von mehreren Tabellen
Dies ist die Abfrage, die ich jetzt bin mit:
SELECT a.date_in, a.date_out, b.name, b.phone, b.birthdate,
b.country, b.hotel, b.room_nr, b.passport_nr, c.email,
d.size, e.name, GROUP_CONCAT(g.service), GROUP_CONCAT(h.service)
, GROUP_CONCAT(i.time), GROUP_CONCAT(j.location)
FROM reservation a, rider b, user c,
bike_size d, bike e, services_reservation f, services g,
bike_shipping h, bike_shipping_reservation i
, bike_shipping_location j WHERE a.rider_id = b.id
AND b.user_id = c.id AND a.bike_size_id = d.id AND
d.bike_id = e.id AND a.id = f.reservation_id AND
f.services_id = g.id
AND h.id = i.bike_shipping_id AND a.id = i.reservation_id
AND i.bike_shipping_location_id = j.id
AND a.id = 80
Das Problem ist, dass alle Spalten, in denen ich GROUP_CONCAT Funktion zu verwenden, oft dupliziert bekommen. Zum Beispiel:
GROUP_CONCAT(g.service) column
Road SPD,Road SPD,Bike Helmet,Bike Helmet,TT Bar,TT Bar,Garmin Edge
810,Garmin Edge 810
sollte
Road SPD,Bike Helmet,TT Bar,Garmin Edge 810
Irgendwelche Ideen sein, wie ich es beheben kann? ist mein Datenbankschema gut?
SQLFiddle: http://sqlfiddle.com/#!9/8bc033/33
Added die MySQL-Tag für Sie verwenden, aber versuchen Sie nicht zu vergessen, Spezifizieren Sie Ihre spezifische Datenbank, wenn Sie in Zukunft weitere SQL-Fragen stellen. – sstan