我在使用外部应用的 SQL 服务器中有一个查询。现在我想对其进行转换,以便查询也可以在 SQL 服务器和 MySQL 上运行。
select top 5 v.sVehicleName as VehicleNo, ll.Location
from vehicles v
outer APPLY
(select top 1 Location
from location_history
where vehicle_id = v.vehicle_id) ll
我必须隐藏这个查询,以便我可以在两个数据库上运行。
这是我的桌子
create table #vehicles (vehicle_id int, sVehicleName varchar(50))
create table #location_history ( vehicle_id int, location varchar(50), date datetime)
insert into #vehicles
values
(1, 'MH 14 aa 1111'),
(2,'MH 12 bb 2222'),
(3,'MH 13 cc 3333'),
(4,'MH 42 dd 4444')
insert into #location_history
values
( 1, 'aaa', getdate()),
( 1, 'bbb', getdate()),
( 2, 'ccc', getdate()),
( 2, 'ddd', getdate()),
( 3, 'eee', getdate()),
( 3, 'fff', getdate()),
( 4, 'ggg', getdate()),
( 4 ,'hhh', getdate())
这是我在 SQL Server 中执行的查询。
select v.sVehicleName as VehicleNo, ll.Location
from #vehicles v
outer APPLY
(select top 1 Location
from #location_history
where vehicle_id = v.vehicle_id) ll
这是 SQL 服务器中的输出。
车辆编号 | 地点 |
---|---|
MH14 AA 1111 | 啊啊啊 |
MH12 BB 2222 | ccc |
MH13 cc 3333 | eee |
MH42 dd 4444 | ggg |
我想在 MySQL 中执行这个。我想要上面提到的相同输出。