如何使用WHERE子句显示MySQL中的所有数据
我想显示我列中的所有值,即使是空值 下面是我的代码,它显示包含null的所有列数据,但不显示最新日期如何使用WHERE子句显示MySQL中的所有数据,mysql,sql,database,Mysql,Sql,Database,我想显示我列中的所有值,即使是空值 下面是我的代码,它显示包含null的所有列数据,但不显示最新日期 SELECT MEMB.LAST_M, MEMB.MEMB_N, PrintDate FROM MEMB INNER JOIN tblPrint ON MEMB.MEMB_N = tblPrint.MEMB_N 但是,此代码显示最新日期,但不显示所有列,甚至不显示空值 SELECT MEMB.LAST_M, MEMB.MEMB_N, M
SELECT
MEMB.LAST_M,
MEMB.MEMB_N,
PrintDate
FROM
MEMB
INNER JOIN tblPrint
ON MEMB.MEMB_N = tblPrint.MEMB_N
但是,此代码显示最新日期,但不显示所有列,甚至不显示空值
SELECT
MEMB.LAST_M,
MEMB.MEMB_N,
MAX(PrintDate)
FROM
MEMB
INNER JOIN tblPrint
ON MEMB.MEMB_N = tblPrint.MEMB_N
WHERE tblPrint.`PrintDate` IN (SELECT tblPrint.`PrintDate` FROM tblPrint) GROUP BY MEMB.`LAST_M`
您可能需要使用左联接而不是内联接。没有看到DB结构,我无法确定测试结果,但我以前也遇到过同样的问题。LEFT JOIN为我修复了它。查询的问题是WHERE子句。您可以尝试删除它,然后得到空值
SELECT
MEMB.LAST_M,
MEMB.MEMB_N,
MAX(PrintDate)
FROM
MEMB
INNER JOIN tblPrint
ON MEMB.MEMB_N = tblPrint.MEMB_N
GROUP BY MEMB.LAST_M, MEMB.MEMB_N
在MySQL 8中实现了,因此现在可以在单元级查询中包含内联聚合。具体而言,您可以在原始查询中添加一个新列,以查找最新的\u日期:
嗨,这不会改变什么。IDK如何创建db结构,我现在无法向您显示任何这是一个冗余条件tblPrint.PrintDate在从tblPrint中选择tblPrint.PrintDate…还不如写1=1。我已经删除了它!感谢您注意我在MySQL中的queryA,下面是一条评论。而且MySQL没有表。对不起,忘记删除了。我在SQL Server中测试它,这就是为什么我将它放在临时表中的原因:
SELECT
m.LAST_M,
m.MEMB_N,
p.PrintDate,
MAX(PrintDate) OVER(PARTITION BY m.MEMB_N) AS Latest_Date
FROM
MEMB m
INNER JOIN tblPrint p
ON m.MEMB_N = p.MEMB_N