Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重写不带行号的SQL查询,以便将其映射到Hibernate_Sql_Oracle - Fatal编程技术网

重写不带行号的SQL查询,以便将其映射到Hibernate

重写不带行号的SQL查询,以便将其映射到Hibernate,sql,oracle,Sql,Oracle,模式: 表A:援助(主键)、接收日期 表B:投标(主键)、援助(FK)、消息、项目ID、项目类型 表A-to-B具有一对多映射 下面是一个正在运行的SQL查询(在SQL Server中),用于查找按ITEMID分组的最新消息,即不同ITEMID(ITEMTYPE为“XYZ”)的最新消息 不使用行号是否可以重写此查询?也许您可以使用类似的方法: SELECT b.MESSAGE, b.ITEMID from a inner join b on b.aid = a.aid where

模式:

  • 表A
    :援助(主键)、接收日期
  • 表B
    :投标(主键)、援助(FK)、消息、项目ID、项目类型
表A-to-B具有一对多映射

下面是一个正在运行的SQL查询(在SQL Server中),用于查找按ITEMID分组的最新消息,即不同ITEMID(ITEMTYPE为“XYZ”)的最新消息


不使用
行号
是否可以重写此查询?

也许您可以使用类似的方法:

SELECT 
    b.MESSAGE, b.ITEMID
from a
inner join b on b.aid = a.aid
where a.receive_date in (select max(receive_date)
                                            from a a1
                                            inner join b b1 on b1.aid = a1.aid   
                                            where b1.itemid = b.itemid
                                            );

SQL Server或Oracle?上面的查询在SQL Server中工作,但我需要在SQL Server和Oracle中执行它,而不带行号。该查询在Oracle中不工作,因为Oracle不支持表别名的
AS
(尽管它支持列别名)。-在ANSI-92 SQL标准(25年前!)中,用正确的ANSI
JOIN
语法替换了老式的逗号分隔表列表样式,不鼓励使用它。您可以向我们提供创建脚本并插入。。。
SELECT 
    b.MESSAGE, b.ITEMID
from a
inner join b on b.aid = a.aid
where a.receive_date in (select max(receive_date)
                                            from a a1
                                            inner join b b1 on b1.aid = a1.aid   
                                            where b1.itemid = b.itemid
                                            );