Unknown column dans un LEFT JOIN

Résolu/Fermé
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - Modifié le 12 sept. 2020 à 00:46
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 12 sept. 2020 à 22:39
Bonsoir à tous,

Pouvez-vous svp m'aider à corriger ce bout de code ?
Il fonctionne très bien sauf quand je met le LEFT JOIN... ces lignes quoi
U.libelle_tag, U.libelle_fr, U.contenance_fr,
LEFT JOIN tab_produits P ON P.libelle_tag = F.libelle_tag


J'obtiens cette erreur : 1054 - Unknown column 'U.libelle_tag' in 'field list'

SELECT
U.libelle_tag, U.libelle_fr, U.contenance_fr,
F.reference, F.libelle_tag, SUM(F.quantite) AS quantite, F.prix_unitaire, SUM(F.prix_total) AS prix,
R.reference, R.point_relais, R.zone_livraison, R.date_creation, R.date_terminer, R.solde_relais, R.taux, R.etat

FROM tab_shop_facture F, tab_shop_recap R
LEFT JOIN tab_produits P ON P.libelle_tag = F.libelle_tag

WHERE 
R.reference = F.reference AND
R.zone_livraison = 'zone_p' AND
R.point_relais <> '411000-SI' AND
R.date_creation BETWEEN '2020-09-01 00:00:00' AND '2020-09-30 23:59:59' AND
(R.etat = 'RÉCUPÉRATION EN POINT RELAIS' OR R.etat = 'COMMANDE TERMINÉE')

GROUP BY 
U.libelle_tag, U.libelle_fr, U.contenance_fr,
F.reference, F.libelle_tag, F.prix_unitaire,
R.reference, R.point_relais, R.zone_livraison, R.date_creation, R.date_terminer, R.solde_relais, R.taux, R.etat


Merci de votre aide.

Configuration: Windows / Chrome 85.0.4183.102
A voir également:

3 réponses

yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
Modifié le 12 sept. 2020 à 13:37
le LEFT JOIN n'implique pas la table F
peut-être, au lieu de:
FROM tab_shop_facture F, tab_shop_recap R
LEFT JOIN tab_produits P ON P.libelle_tag = F.libelle_tag
WHERE 
R.reference = F.reference AND

écrire
FROM (tab_shop_facture F, tab_shop_recap R)
LEFT JOIN tab_produits P ON P.libelle_tag = F.libelle_tag
WHERE 
R.reference = F.reference AND

ou bien
FROM  tab_shop_recap R, tab_shop_facture F
LEFT JOIN tab_produits P ON P.libelle_tag = F.libelle_tag
WHERE 
R.reference = F.reference AND

ou bien (qui peut donner un autre résultat)
FROM tab_shop_facture F
LEFT JOIN tab_shop_recap R ON R.reference = F.reference
LEFT JOIN tab_produits P ON P.libelle_tag = F.libelle_tag
WHERE 
1
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
12 sept. 2020 à 08:38
bonjour, dans quelle table se trouve libelle_tag?
0
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
12 sept. 2020 à 11:55
Pardon, erreur de frappe :

SELECT
P.libelle_tag, P.libelle_fr, P.contenance_fr,
F.reference, F.libelle_tag, SUM(F.quantite) AS quantite, F.prix_unitaire, SUM(F.prix_total) AS prix,
R.reference, R.point_relais, R.zone_livraison, R.date_creation, R.date_terminer, R.solde_relais, R.taux, R.etat

FROM tab_shop_facture F, tab_shop_recap R
LEFT JOIN tab_produits P ON P.libelle_tag = F.libelle_tag

WHERE 
R.reference = F.reference AND
R.zone_livraison = 'zone_p' AND
R.point_relais <> '411000-SI' AND
R.date_creation BETWEEN '2020-09-01 00:00:00' AND '2020-09-30 23:59:59' AND
(R.etat = 'RÉCUPÉRATION EN POINT RELAIS' OR R.etat = 'COMMANDE TERMINÉE')

GROUP BY 
P.libelle_tag, P.libelle_fr, P.contenance_fr,
F.reference, F.libelle_tag, F.prix_unitaire,
R.reference, R.point_relais, R.zone_livraison, R.date_creation, R.date_terminer, R.solde_relais, R.taux, R.etat


Je m'étais trompé entre le P et le U (vraiment désolé)
Voici l'erreur : 1054 Unknown column 'F.libelle_tag' in 'on clause'

libelle_tag existe dans tab_produits et tab_shop_facture
0
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
12 sept. 2020 à 22:39
Merci beaucoup yg_be !

FROM (tab_shop_facture F, tab_shop_recap R)

a fait mon bonheur !
0