Selon https://stackoverflow.com/questions/3264227/relations-with-multiple-keys-in-doctrine-1-2, j'ai deux tables qui (comme je ne peux pas le faire fonctionner dans Doctrine) J'essaie de rejoindre en tant que vue MySQL:Création d'une jointure externe gauche dans MySQL avec des contraintes de droite
partie:
- part_id
- product_ID
- part_type_id
- part_short_code
- ...
part_translation:
- part_type_id
- part_short_code
- LANGUAGE_ID
- internationalised_name
- ...
sur la contrainte que part_type_id et part_short _code doit correspondre entre les tables.
Ceci est compliqué par le fait que:
- Le tableau de droite (part_translation) ne peut pas avoir une ligne correspondante (d'où la jointure gauche)
- Le tableau de droite est uniquement valable pour rejoindre quand part_short_code = '' et language_id = 1
J'ai une question de travail:
SELECT * de la partie LEFT OUTER JOIN (SELECT * FROM part_translation OÙ language_id = 1 ET part_short_code! = '') Comme part_data_uk UTILISATION (part_type_id, part_short_code)
mais a) il est lent (probablement en raison de la sous-requête) et b) Je ne peux pas tourner "# 1349 - SELECT de View contient une sous-requête dans la clause FROM"
Je ne trouve pas comment ajouter les contraintes à la table de droite sans que la jointure agisse comme une jointure interne et compétences toutes les lignes où le côté droit est nul.
Quelqu'un peut-il me dire comment optimiser/améliorer cette requête de manière à se débarrasser de la sous-requête et à la rendre utilisable dans une vue?
Utilisation de MySQL 5.0.45, FWIW.
Merci, Richard
Je sais que je ne jure pas que la dernière fois que j'ai essayé ... doit avoir mal saisi. Merci! – Parsingphase