我基本上是在尝试提取某个机构下的某个政策的概要,该机构具有某种政策类型,而且它必须是最新的政策。
我写了一个 SQL 查询,执行时没有错误,但是当应该至少检索一个数据时它没有提取任何数据。
下面是我的查询:
select synopsis
from policy p
left outer join institution_has_policy ihp
on p.policy_id = ihp.policy_id
left outer join institution i
on i.institution_id = ihp.institution_id
where p.policy_type_id = 5
and i.institution_name = 'SSgA Funds Management, Inc.'
and current_as_of_date = (select max(current_as_of_date) from policy p);
我的sql语句是否正确?
最佳答案
这是您的查询:
select synopsis
from policy p left outer join
institution_has_policy ihp
on p.policy_id = ihp.policy_id left outer join
institution i
on i.institution_id = ihp.institution_id
where p.policy_type_id = 5 and
i.institution_name = 'SSgA Funds Management, Inc.'
current_as_of_date = (select max(current_as_of_date) from policy p);
未返回任何数据,因为最大截至日期与政策和机构名称不对应。如果你只想返回一行,那么你可以使用 order by
和 limit
来获取最新的:
select synopsis
from policy p left outer join
institution_has_policy ihp
on p.policy_id = ihp.policy_id left outer join
institution i
on i.institution_id = ihp.institution_id
where p.policy_type_id = 5 and
i.institution_name = 'SSgA Funds Management, Inc.'
order by current_as_of_date desc
limit 1;
关于mysql - 执行查询但没有显示数据 - MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24311527/