[英]SQL query: NULL values that should not be NULL when using aggregate function with left join
[英]Rows containing Null values in all columns are returned when Max(date) aggregate function is used in sql query
我正在使用Mysql数据库,并且内部联接有问题。 我在查询中使用聚合函数max(dn.on_date)仅选择最近的日期行。 当找到具有匹配条件的行时,这很好用,但是当where子句条件变为false时,将返回1行,其中所有列都为NULL。 我想忽略该行作为结果返回。
表结构如下: 查看表的结构和关系
我的查询是这样的 :
选择d.first_name,d.last_name,d.mobile,dn.don_amount作为金额,max(dn.on_date)作为on_date
来自捐助者d
d.mobile上的内部加入捐赠dn = dn.don_id
由d.mobile asc LIMIT在哪儿降低(first_name)降低('dinesh%')排序
不需要的结果将像这样返回 : 查看结果
我希望当条件不匹配时,它不应该返回任何内容
我已经尝试过了,但是没有用,结果和以前一样
选择d.first_name,d.last_name,d.mobile,dn.don_amount作为金额,max(dn.on_date)作为on_date
来自捐助者d
d.mobile上的内部加入捐赠dn = dn.don_id
d.mobile不为空且d.mobile asc限制为LOWER('dinesh%')的LOWER(first_name)顺序0,4
您使用了汇总功能,但在查询中未看到分组依据
SELECT d.first_name, d.last_name, d.mobile, dn.don_amount as amount, max(dn.on_date) as on_date
FROM donors d
inner join donation dn on d.mobile = dn.don_id
WHERE LOWER(first_name) LIKE 'dinesh%'
group by d.first_name, d.last_name, d.mobile, dn.don_amount
order by d.mobile asc
LIMIT 0,4
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.