一个 MySQL 查询,用于在两张表中查找最高和最低值呢?


要从两张表中找到最高值和最低值,请使用 MAX() 和 MIN()。由于结果要从两张表中显示,因此需要使用 UNION。我们首先创建一个表 -

mysql> create table DemoTable1
(
   UniqueId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   Score1 int
);
Query OK, 0 rows affected (0.76 sec)

使用 insert 命令在表中插入一些记录 -

mysql> insert into DemoTable1(Score1) values(56);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1(Score1) values(76);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1(Score1) values(65);
Query OK, 1 row affected (0.09 sec)

使用 select 语句显示表中的所有记录 -

mysql> select *from DemoTable1;

这将产生以下输出 -

+----------+--------+
| UniqueId | Score1 |
+----------+--------+
|        1 |     56 |
|        2 |     76 |
|        3 |     65 |
+----------+--------+
3 rows in set (0.00 sec)

以下是创建第二张表的查询 -

mysql> create table DemoTable2
(
   UniqueId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   Score2 int
);
Query OK, 0 rows affected (0.93 sec)

使用 insert 命令在表中插入一些记录 -

mysql> insert into DemoTable2(Score2) values(67);
Query OK, 1 row affected (0.68 sec)
mysql> insert into DemoTable2(Score2) values(94);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable2(Score2) values(98);
Query OK, 1 row affected (0.08 sec)

使用 select 语句显示表中的所有记录 -

mysql> select *from DemoTable2;

这将产生以下输出 -

+----------+--------+
| UniqueId | Score2 |
+----------+--------+
|        1 |     67 |
|        2 |     94 |
|        3 |     98 |
+----------+--------+
3 rows in set (0.00 sec)

以下是查询 2 个表中的最高值和最低值的查询 -

mysql> select max(commonValue) AS Highest_Value,min(commonValue) AS Lowest_Value from
(
   select Score1 as commonValue from DemoTable1
   union
   select Score2 as commonValue from DemoTable2
) tbl;

这将产生以下输出 -

+---------------+--------------+
| Highest_Value | Lowest_Value |
+---------------+--------------+
|            98 |           56 |
+---------------+--------------+
1 row in set (0.04 sec)

更新于: 01-10-2019

129 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始吧
广告