我知道有很多很好的问题在左回答回答,但我有麻烦找到有关我的特定问题的东西。我为可能重复的话题表示歉意,但不胜感激。MySQL左加入不产生预期结果
我有两个包含礼品卡销售的表。我必须验证金额是否匹配。 我正在寻找帮助编写一个查询,从表一回一切即使是表B.不匹配的记录
表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
表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
这是我的查询到目前为止(显然有什么问题)
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
下面是结果:
| 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
正如你所看到的,是用103号方差不过,我需要的结果显示每一个ID,无论是否有匹配与否。结果集是我期望使用Inner Join的结果。
感谢您的帮助。 – Brett