我看到了这个问题的变体,但它们要么不适用,要么我不明白答案。
我有两张桌子,一张是收费类型,另一种是收费。我想加入他们以获得适当的价值。我想加入费用在 startDate 和 endDate 之间以及类型上的表格。如果没有匹配项,我希望它选择类型 -1(日期条件相同)。如果没有匹配,我不希望它出现在结果中。
我最初打算做一个按“type” desc 排序的普通左连接,然后按“type”分组,相信它只会让我使用第一种类型,但我读到 MySQL 建议不要这样做,因为 group by 可能是不可预测的并不总是返回第一场比赛。
表:
startDate | endDate | type | addCost
--------------------------------------
2010-01-01 2010-12-31 1 100
2010-01-01 2010-12-31 2 200
2010-01-01 2010-12-31 -1 50
2011-01-01 2012-02-20 3 350
2011-01-01 2012-02-20 1 150
2011-01-01 2012-02-20 -1 75
chargeDate | type | cost
---------------------------
2010-10-01 1 10
2010-11-01 2 20
2010-12-01 4 40
2011-02-01 3 60
2011-03-01 2 25
2011-04-01 4 25
期望的结果:
chargeDate | type | cost | addCost
---------------------------------
2010-10-01 1 10 100
2010-11-01 2 20 200
2010-12-01 4 40 50
2011-02-01 3 60 350
2011-03-01 2 25 75