私は10個のテーブルを親キーで通信しています。私が必要とするすべての情報を引き出そうとしています。SQL:複数のテーブルからの選択
これは私が今使っているクエリです:
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
問題は、私はGROUP_CONCAT機能を使用するすべての列が、何回も重複してしまうことがあります。たとえば:
GROUP_CONCAT(g.service) column
Road SPD,Road SPD,Bike Helmet,Bike Helmet,TT Bar,TT Bar,Garmin Edge
810,Garmin Edge 810
は、私はそれを修正することができますどのように
Road SPD,Bike Helmet,TT Bar,Garmin Edge 810
任意のアイデアすべきですか?私のデータベーススキームは良いですか?
SQLFiddle: http://sqlfiddle.com/#!9/8bc033/33
を使用して、これを試してみてくださいあなたのためのMySQLのタグが追加されましたが、それに忘れないようにしてください将来他のSQL質問をするときに特定のデータベースを指定してください。 – sstan