J'ai une requête que je l'ai fait, mais j'ai un problème avec -MySQL Query est beaucoup trop compliqué
Est-ce la façon de « neatest » d'écrire cela? Je pense que cela pourrait être écrit beaucoup mieux, j'ai entendu dire que vous pouvez «boucler le jeu d'enregistrements» en utilisant plus de requêtes - serait-ce une bonne chose à faire? Et si oui, quelqu'un peut-il me diriger dans la bonne direction? Cette requête doit utiliser beaucoup de mémoire car elle est répartie sur 8 tables incluant une sous-requête avec 3 tables.
Remarque - J'utilise une base de données esclave avec un accès en lecture seule, il est donc impossible de changer de structure/créer des tables, etc.
Un grand merci pour toute aide. Très apprécié.
Select travel_booking.reference As REF,
travel_group.name As `Group Name`,
site_user.firstname As `First Name`,
site_user.lastname As `Last Name`,
site_user.gender,
travel_package.start_date As `Start Date`,
travel_booking_option.name As `Option Name`,
travel_booking_option.text_box_text As `Free Text`,
travel_booking_option.select_box_option As `Select Text`,
travel_booking_option.option_price As `Option Price`,
content.name As `Option Type`
From travel_booking Inner Join
travel_booking_option On travel_booking_option.travel_bookingid =
travel_booking.travel_bookingid Inner Join
travel_group On travel_group.travel_groupid = travel_booking.travel_groupid
Inner Join
site_user On site_user.site_userid = travel_booking.site_userid Inner Join
travel_option_group On travel_option_group.travel_option_groupid =
travel_booking_option.travel_option_groupid Inner Join
content On travel_option_group.travel_option_type_content_realid =
content.content_realid Inner Join
travel_package On travel_package.content_realid =
travel_booking.travel_packageid
Where travel_booking_option.fee = 0 And travel_booking_option.refund = 0 And
travel_booking_option.cancel = 0 And travel_booking.cancel = 0 And
travel_package.live = 1 And content.live = 1
Group By travel_booking.reference,
travel_group.name,
site_user.firstname,
site_user.lastname,
site_user.gender,
travel_package.start_date,
travel_booking_option.name,
travel_booking_option.text_box_text,
travel_booking_option.select_box_option,
travel_booking_option.option_price,
content.name
En plus d'être mal formaté cette requête semble assez agréable. Pourquoi ne modifiez-vous pas simplement vos index pour vous assurer qu'ils sont aussi efficaces que possible. – ChaosPandion
La requête me semble propre et directe – Xinus