gpt4 book ai didi

mysql - 从两个年份相同的表中选择值

转载 作者:行者123 更新时间:2023-11-29 12:20:26 26 4
gpt4 key购买 nike

我从两个年份相同的表中选择数据。即使表 C 中的值不匹配,从表 B 中选择的值也应显示其项目。

table a
| ItmID | NAME |
| 001 | book |
| 002 | pencil |


table b
| ItmID | Amount | Year |
| 001 | 100.00 | 2010 |
| 001 | 150.00 | 2011 |


table c
| ItmID | interest | Year |
| 001 | 10.00 | 2010 |

在上表中,我只想查询 2010 年这本书的金额和利息值。

expected results
| NAME | Amount | interest | Year |
| book | 100.00 | 10.00 | 2010 |

这是我迄今为止尝试过的

SELECT  
a.NAME,
b.Amount,
c.interest
FROM
table a
LEFT JOIN
table b
ON
a.ItmID=b.ItmID
LEFT JOIN
table c
ON
a.ItmID=c.ItmID
where
b.year=2010 and c.year=2010

这能够正确地为我提供值,但是当表c中没有值时,查询将运行为空。

例如,如果我只想查询 2011 年这本书的金额和利息值。该查询将运行为空,因为没有 2011 年的利息值。

请问我做错了什么吗?

最佳答案

您应该将 where 条件添加到 on 子句中:

SELECT  
a.NAME,
b.Amount,
c.interest
FROM
table a
LEFT JOIN
table b
ON
a.ItmID=b.ItmID and b.year=2010
LEFT JOIN
table c
ON
a.ItmID=c.ItmID and c.year=2010

因此,如果您使用 where 子句,则必须检查 c.year 是否为 null。

关于mysql - 从两个年份相同的表中选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29100327/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com