mysql - sql max 函数出错:关键字“select”附近的语法不正确
问题描述
我有下一个 sql 代码,您可以在下面看到。它的工作原理除了最后一行的 where 条件。
select m.model,m.price from (
select product.model, pc.price
from product
join pc
on product.model=pc.model
union
select product.model, laptop.price
from product
join laptop
on product.model=laptop.model
union
select product.model, printer.price
from product
join printer
on product.model=printer.model
) m
where m.price = select max(m.price) from m
我有下一个错误:关键字“select”附近的语法不正确。如果我把最后一行写成:where m.price = m.price
它也可以
解决方案
如果您正在寻找价格最高的型号:
select m.model, m.price
from (select p.model, pc.price
from product p join
pc
on p.model = pc.model
union all
select p.model, laptop.price
from product join
laptop
on p.model = laptop.model
union all
select p.model, printer.price
from product p join
printer
on p.model = printer.model
) m
order by m.price desc
limit 1;
但是,这过于复杂,因为join
不需要 s:
select m.model, m.price
from (select pc.model, pc.price
from pc
union all
select laptop.model, laptop.price
from laptop
union all
select printer.model, printer.price
from printer
) m
order by m.price desc
limit 1;
推荐阅读
- django - Django DJANGO_SETTINGS_MODULE 在 Cookiecutter 中变回 'config.settings.local'
- docker - 当我在 Dockerfile 中使用 root 用户时构建图像报告“需要是 root”
- ios - 领域:- 由于未捕获的异常“RLMException”而终止应用程序?
- css - 视频应触及盒子的顶部和底部
- firebase - Firestore 安全规则 - 获取集合时 {wildcard} 既不为空也不为空
- c - 将 2D 数组转换为 3D?
- sql - 从一列中选择所有值组合
- maven - 为 MariaDB 连接器 J 运行 mvn 测试时如何将 shell 变量或环境变量传递给 Maven
- r - 如何强制 data.table 将 i 中的名称解释为调用环境中的向量?
- c# - 创建倒计时时钟