作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试结合一些 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/
我是一名优秀的程序员,十分优秀!