Voici l'instantané de la requête qui ne fonctionne pas depuis que j'ai ajouté l'Union.La requête SQL ne fonctionne pas avec UNION?
SELECT fin05_usager.idUsager,
(SELECT sum(nombreReputation) as nombreReputation
FROM (SELECT SUM(nombreReputationGagner) as nombreReputation
FROM fin05_usager_reputation
WHERE fin05_usager_reputation.idUsager = fin05_usager.idUsager
GROUP BY fin05_usager_reputation.idUsager
UNION
SELECT SUM(cc_badge.valeurEnReputation) as nombreReputation
FROM cc_badge, fin05_usager_badge
WHERE fin05_usager_badge.idBadge = cc_badge.idBadge
AND fin05_usager_badge.idUsager = fin05_usager.idUsager) as repuUnion
) as repu
FROM fin05_usager
WHERE fin05_usager.idUsager = 6
L'erreur est: # 1054 - Unknown column 'fin05_usager.idUsager' dans 'où la clause'
Si je supprime le fin05_usager.idUsager et utiliser directement '6' il fonctionne.
Si je retire le syndicat et utiliser un seul des 2 sélectionnez cela fonctionne (ce que jamais si je prends FROM fin05_usager_reputation ou l'autre du cc_badge, fin05_usager_badge.
Pourquoi lorsque vous utilisez l'UNION l'erreur de trouver l'IDUsager apparaissent et sans l'union aucune erreur se trouve
schéma simplifié:
fin05_usager: IDUsager int (8)
fin05_usager_reputation: IDUsager int (8), nombreReputationGagn er int (4)
cc_badge: idBadge int (4), valeurEnReputation int (4)
fin05_usager_badge: IDUsager int (8), idBadge int (4)
Note:
I ne peut pas faire la sous-requête directement dans la requête. Je dois l'utiliser à l'intérieur d'une sous-requête dans la sélection car en réalité, la requête est très grande et contient déjà un groupe, etc.
Veuillez poster votre schéma –
Ici le schéma simplifié. Comme la requête, c'est une version simplifiée car tout contient beaucoup de jointure interne/gauche. –
Une alternative serait de déplacer la requête sous-sélection dans une vue et de rejoindre la vue dans votre requête actuelle. –