组合多个高级 MySQL select 查询的最佳方式是什么?


要组合多个高级 MySQL select 查询,请使用 UNION。我们首先创建一个表 −

mysql> create table DemoTable1 (Value1 int,Value2 int);
Query OK, 0 rows affected (0.62 sec)

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

mysql> insert into DemoTable1 values(10,29);
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1 values(100,190);
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable1 values(40,101);
Query OK, 1 row affected (0.12 sec)

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

mysql> select *from DemoTable1;

这将产生以下输出 −

+--------+--------+
| Value1 | Value2 |
+--------+--------+
| 10     | 29     |
| 100    | 190    |
| 40     | 101    |
+--------+--------+
3 rows in set (0.00 sec)

以下是创建第二个表所需的查询 −

mysql> create table DemoTable2 (Number1 int, Number2 int);
Query OK, 0 rows affected (0.49 sec)

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

mysql> insert into DemoTable2 values(100,290);
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable2 values(200,390);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable2 values(50,170);
Query OK, 1 row affected (0.12 sec)

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

mysql> select *from DemoTable2;

这将产生以下输出 −

+---------+---------+
| Number1 | Number2 |
+---------+---------+
| 100     | 290     |
| 200     | 390     |
| 50      | 170     |
+---------+---------+
3 rows in set (0.00 sec)

以下是组合多个高级 MySQL select 查询的查询 −

mysql> (select Value1,Value2 from DemoTable1)
   union
   (select Number1 AS Value1, Number2 AS Value2 from DemoTable2)
   order by Value1 DESC;

这将产生以下输出 −

+--------+--------+
| Value1 | Value2 |
+--------+--------+
| 200    |    390 |
| 100    |    290 |
| 100    |    190 |
| 50     |    170 |
| 40     |    101 |
| 10     |     29 |
+--------+--------+
6 rows in set (0.04 sec)

更新于: 22-Aug-2019

343 次浏览

启动您的 职业

完成课程获得证书

开始学习
广告