【发布时间】:2015-01-07 15:20:18
【问题描述】:
我在 oracle 数据库中有两个表
表 1 表示带有字段 (id, name) 的表 1
记录例如
###############
id | name
1 | Chair
2 | Table
3 | Bed
###############
并且表 2 说 table2 字段为(id, table1_id, date, price)
##############################
id |table1_id| date | price
1 | 1 | 2013-09-09 | 500
2 | 1 | 2013-08-09 | 300
3 | 2 | 2013-09-09 | 5100
4 | 2 | 2013-08-09 | 5000
5 | 3 | 2013-09-09 | 10500
################################
我想要实现的是从表 2 中检索所有项目的最新价格
SQL 的结果应该是这样的
##############################
id |table1_id| date | price
1 | 1 | 2013-09-09 | 500
3 | 2 | 2013-09-09 | 5100
5 | 3 | 2013-09-09 | 10500
################################
我可以通过以下查询在 mysql 中运行
SELECT t2.id, t1.id, t1.name, t2.date, t2.price
FROM table1 t1 JOIN table2 t2
ON (t1.id = t2.table1_id
AND t2.id = (
SELECT id
FROM table2
WHERE table1_id = t1.id
ORDER BY table2.date DESC
LIMIT 1
));
但它在 ORACLE 中不起作用,这里我需要一个可以在两台服务器上运行且稍作修改的查询
【问题讨论】: