能否用 ORDER BY 在两张不同的表中显示两列不同的列?


为此,你可以使用 UNION 和 ORDER BY 子句。我们首先创建一个表 -

mysql> create table DemoTable1
(
   Amount int
);
Query OK, 0 rows affected (0.63 sec)

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

mysql> insert into DemoTable1 values(234);
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable1 values(567);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1 values(134);
Query OK, 1 row affected (0.43 sec)

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

mysql> select *from DemoTable1;

这样会输出以下内容 -

+--------+
| Amount |
+--------+
|    234 |
|    567 |
|    134 |
+--------+
3 rows in set (0.00 sec)

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

mysql> create table DemoTable2
(
   Price int
);
Query OK, 0 rows affected (0.73 sec)

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

mysql> insert into DemoTable2 values(134);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable2 values(775);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable2 values(121);
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable2 values(882);
Query OK, 1 row affected (0.09 sec)

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

mysql> select *from DemoTable2;

这样会输出以下内容 -

+-------+
| Price |
+-------+
|   134 |
|   775 |
|   121 |
|   882 |
+-------+
4 rows in set (0.00 sec)

以下是使用 ORDER BY 在两个不同的表中显示两列不同的列的查询 -

mysql> select distinct Amount from DemoTable1
   UNION
   select distinct Price from DemoTable2
   order by Amount;

这样会输出以下内容 -

+--------+
| Amount |
+--------+
|    121 |
|    134 |
|    234 |
|    567 |
|    775 |
|    882 |
+--------+
6 rows in set (0.00 sec)

更新日期: 01-Oct-2019

583 次浏览

启动您的事业

完成课程以获得认证

入门
广告