我已尝试解决此查询问题,但未找到可行的解决方案。
洞察我的数据库关系和结构:
我有3个表,其中2个表的外键ID指向第3个表中的本机ID键,所有这三个表都在sql datetime值中有日期。
洞察我的目标:
我想从这三个日期中找到最新日期,并在php中输出该单个值。为了实现这个目标,我加入了三个表并使用了内置的sql最大函数来检索三个选定列的最新数据。
洞察我的sql代码:
SELECT GREATEST(Reacties.datum, Deelnemers.datum ,Skirms.submit_datum)
FROM Skirms
INNER JOIN Deelnemers ON Skirms.ID = Deelnemers.skirms_fk
INNER JOIN Reacties ON Skirms.ID = Reacties.skirms_fk
WHERE Skirms.ID = 1
上述代码存在问题
执行上述查询时,遗憾的是它没有返回任何值。
答案 0 :(得分:0)
这可能会返回多行。您可以在GREATEST之前申请MAX:
SELECT GREATEST(MAX(Reacties.datum), MAX(Deelnemers.datum) ,MAX(Skirms.submit_datum))
但是如果您只想从三个表中获取最新日期,则无需加入这些表,请选择每个最大日期,然后选择最大日期:
select max(maxDate)
from
( SELECT max(datum) as maxDate
FROM Skirms
WHERE ID = 1
UNION ALL
SELECT max(datum) as maxDate
FROM Deelnemers
WHERE skirms_fk = 1
UNION ALL
SELECT max(datum) as maxDate
FROM Reacties
WHERE skirms_fk = 1
) AS dt