mysql - 执行查询但没有显示数据 - MySQL

标签 mysql sql mysql-workbench

我基本上是在尝试提取某个机构下的某个政策的概要,该机构具有某种政策类型,而且它必须是最新的政策。

我写了一个 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 bylimit 来获取最新的:

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/

相关文章:

mysql - 不正确的数据库图表 - MySQL Workbench 选项

php - 尝试为 HTML 页面上显示的每个 MySQL 行创建 "like"按钮

mysql - 如何在Mysql中做time_to_minute?

java - 通过与数据库中的用户详细信息进行比较来进行用户登录

MySql Workbench - "Local instance 3306"和 "Localhost via pipe"之间的区别?

mysql - 更改 SQL 表中的日期格式

Mysql View (最近六个月的数据)

Mysql 数据透视表

mysql - 从表中删除行但保留给定的数字

mysql - 使用下划线而不是空格是否有任何 sql 性能提升?