mysql - 三个不同表中的最大值

标签 mysql sql oledb

我有三个表,如下:

  • 表1(ID,JName,XVal,YVal)
  • 表2(ID,RName,XVAL,YVal)
  • table3(ID、TName、XValue、YValue)

XValue、YValue、XVal、YVal 均为数字类型。我想要所有这些表中 XVal 和 YVal 的最大值和最小值。之前我写过以下查询:

Select max(XVal) FROM table1
Select max(XVal) FROM table2
Select max(XValue) FROM table3

对于最小值:

Select min(XVal) FROM table1
Select min(XVal) FROM table2
Select min(XValue) FROM table3

通过运行这些查询,我可以获得 3 个不同的最小值和最大值结果,然后,我可以使用逻辑代码来比较它们并获得最大值和最小值,但我在这里想要的是单个查询来执行此操作对我来说。
我使用了以下查询:

Select max(XVal) from table1 UNION select max(XVal) from table2 UNION select max(XValue) as XVal from table3 ORDER BY 'MAX(XVal)'DESC LIMIT 1

还有一个:

select max(XVal) as maxval from(select XVal from table1 UNION ALL SELECT XVal from table2 UNION ALL Select XValue from table3) as subquery

但是他们都失败了。有人可以帮我解决这个问题吗?并指出上述查询不起作用的原因?

最佳答案

两个版本中第一个版本的正确语法是:

Select max(XVal) as max_XVal from table1 UNION ALL
select max(XVal) from table2 UNION ALL
select max(XValue) as XVal from table3
ORDER BY max_XVal DESC
LIMIT 1;

您可以在此处使用 UNIONUNION ALL

如果您想要三个表中的最小值和最大值:

SELECT MIN(XVal), MAX(XVal)
FROM
(
    SELECT XVal FROM table1
    UNION ALL
    SELECT XVal FROM table2
    UNION ALL
    SELECT XVal FROM table3
) t123;

关于mysql - 三个不同表中的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34810325/

相关文章:

PHP 从 MySQL 获取下一条/上一条记录

Access 中旧 VB.NET 项目中的 MYSQL 连接字符串

c# - 在 c# 中读取 excel 文件时, 'microsoft.ace.oledb.12.0' 提供程序未在本地计算机上注册

sql - 如何在oracle 10g中根据居住地址获得排序结果?

MySQL:连接两个表,但只获取第二个表中的第一个值

sql - ds.Tables.Rows.Add() 调用一次时生成 3 行

php - 我无法在 Magento 中为产品保存价格

PHP 错误 - 未定义方法 DB_Connect::query()

MYSQL - 从相似的行中创建单个记录,为大多数列选择最大长度的值

mysql - 交叉表 - 252 个查询 - 优化