Je sais qu'il y a beaucoup de bonnes questions répondues sur Left rejoint, mais j'ai du mal à trouver quelque chose concernant mon problème particulier. Je m'excuse pour un sujet répété possible, mais l'aide serait grandement appréciée.MySQL Left Join ne produisant pas les résultats attendus
J'ai deux tables qui contiennent des ventes de cartes-cadeaux. Je dois vérifier que les montants correspondent. Je suis à la recherche d'aide pour rédiger une requête qui renverra tout le tableau A, même s'il n'y a pas d'enregistrement correspondant dans le tableau B.
TABLEAU A
| id | business_date | am_pm | gift_cards_sold |
================================================
103 | 2011-10-06 | PM | 175.03
104 | 2011-10-06 | PM | 135.03
105 | 2011-10-06 | PM | 250.74
106 | 2011-10-06 | PM | 180.44
107 | 2011-10-06 | PM | 150.10
108 | 2011-10-06 | PM | 130.00
TABLEAU B
| id | business_date | am_pm | gift_cards_sold |
================================================
103 | 2011-10-06 | PM | 100.03
105 | 2011-10-06 | PM | 250.74
106 | 2011-10-06 | PM | 180.44
107 | 2011-10-06 | PM | 150.10
Voici ma requête jusqu'à présent (évidemment quelque chose ne va pas avec elle)
SELECT A.id AS ID, A.gift_cards_sold AS A_SOLD, B.gift_cards_sold AS B_SOLD
FROM A
LEFT JOIN B
USING (id)
WHERE A.am_pm = 'PM'
AND A.business_date = '2011-10-06'
AND B.business_date = '2011-10-06'
GROUP BY A.id
ORDER BY A.id ASC
Voici le résultat:
| id | A_SOLD | B_SOLD |
========================
103 | 175.03 | 100.03
105 | 250.74 | 250.74
106 | 180.44 | 180.44
107 | 150.10 | 150.10
Comme vous pouvez le voir, il y a un écart avec l'identifiant de 103. Cependant, je dois avoir le résultat montrer tous les id, peu importe s'il y a un match ou non. L'ensemble de résultats est ce que j'attendrais de l'utilisation d'une jointure interne.
Merci pour votre aide. – Brett