gpt4 book ai didi

mysql - 如何将这段sql翻译成没有子查询的左连接?

转载 作者:行者123 更新时间:2023-11-30 00:15:00 25 4
gpt4 key购买 nike

我想在mysql中创建一个 View ,但是mysql中不支持子查询。没有子查询的sql怎么写?

select * from dev_location t1

inner join

(
select
`dev_location`.`device_id` AS `device_id`,
max(`dev_location`.`id`) AS `id`
from
`dev_location`
group by `dev_location`.`device_id`) t2

on t1.id = t2.id

最佳答案

MySQL View 不支持 from 子句中的子查询。以下内容应该在 View 中工作:

select dl.*
from dev_location dl
where not exists (select 1
from dev_location dl2
where dl2.device_id = dl.device_id and
dl2.id > dl.id
);

这会将查询重新表述为:“从 dev_location 获取 device_id 没有更大 id 的所有行。”这是获得最大值的尴尬方法。

而且,如果在 dev_location(device_id, id) 上建立索引,它的性能可能会比您的版本更好。

关于mysql - 如何将这段sql翻译成没有子查询的左连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23728855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com