重写不带行号的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
:投标(主键)、援助(FK)、消息、项目ID、项目类型表B
不使用
行号
是否可以重写此查询?也许您可以使用类似的方法:
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年前!)中,用正确的ANSIJOIN
语法替换了老式的逗号分隔表列表样式,不鼓励使用它。您可以向我们提供创建脚本并插入。。。
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
);