gpt4 book ai didi

mySQL 匹配日期,并在加入时返回 null

转载 作者:行者123 更新时间:2023-11-30 21:38:13 25 4
gpt4 key购买 nike

我正在尝试结合一些 NBA 数据、统计数据和高级球员统计数据。我现在得到的查询是:

select boxes.GNO, boxes.NAME, boxes.DATE, advstat.YEAR, advstat.NAME, advstat.AGE
from boxes left join advstat on boxes.NAME=advstat.NAME
group by boxes.NAME, boxes.GNO having boxes.GNO = 1;

boxes.GNO=1 只是为了限制此时返回的数据,最终我将返回 boxes 表中所有游戏的数据。

通过上面的查询,我得到以下输出:

+------+------------------+------------+------+------------------+------+
| GNO | NAME | DATE | YEAR | NAME | AGE |
+------+------------------+------------+------+------------------+------+
| 1 | Al Horford | 2017-10-17 | 2008 | Al Horford | 21 |
| 1 | Aron Baynes | 2017-10-17 | 2013 | Aron Baynes | 26 |
| 1 | Derrick Rose | 2017-10-17 | 2009 | Derrick Rose | 20 |
| 1 | Dwyane Wade | 2017-10-17 | 2004 | Dwyane Wade | 22 |
| 1 | Gordon Hayward | 2017-10-17 | 2011 | Gordon Hayward | 20 |
| 1 | Iman Shumpert | 2017-10-17 | 2012 | Iman Shumpert | 21 |
| 1 | Jae Crowder | 2017-10-17 | 2013 | Jae Crowder | 22 |
| 1 | Jaylen Brown | 2017-10-17 | 2017 | Jaylen Brown | 20 |
| 1 | Jayson Tatum | 2017-10-17 | NULL | NULL | NULL |
| 1 | Jeff Green | 2017-10-17 | 2008 | Jeff Green | 21 |
| 1 | JR Smith | 2017-10-17 | NULL | NULL | NULL |
| 1 | Kevin Love | 2017-10-17 | 2009 | Kevin Love | 20 |
| 1 | Kyle Korver | 2017-10-17 | 2004 | Kyle Korver | 22 |
| 1 | Kyrie Irving | 2017-10-17 | 2012 | Kyrie Irving | 19 |
| 1 | LeBron James | 2017-10-17 | 2004 | LeBron James | 19 |
| 1 | Marcus Smart | 2017-10-17 | 2015 | Marcus Smart | 20 |
| 1 | Semi Ojeleye | 2017-10-17 | NULL | NULL | NULL |
| 1 | Shane Larkin | 2017-10-17 | 2014 | Shane Larkin | 21 |
| 1 | Terry Rozier | 2017-10-17 | 2016 | Terry Rozier | 21 |
| 1 | Tristan Thompson | 2017-10-17 | 2012 | Tristan Thompson | 20 |
+------+------------------+------------+------+------------------+------+

这几乎是正确的.. 但是我需要 advstat.YEAR 来匹配年份(boxes.DATE)。如果我添加..其中 year(boxes.DATE)=advstat.YEAR,排除了 NULL 数据,这不是我想要的。我需要表格看起来像上面那样,只是年份在 2 个表格之间正确排列。

任何帮助将不胜感激!干杯!

最佳答案

这是你想要的吗?

select b.GNO, b.NAME, b.DATE, s.YEAR, s.NAME, s.AGE
from boxes b left join
advstat s
on b.NAME = s.NAME and year(b.date) = s.year
where b.GNO = 1
group by b.NAME, b.GNO ;

请注意,在 group by 之前进行过滤通常效率更高,因此我建议使用 where 而不是 having

关于mySQL 匹配日期,并在加入时返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52939184/

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