限制MySQL中跨表的總結果數?
為此,您可以結合使用UNION ALL和LIMIT概念。在我們的示例中,我們將建立三個表。
讓我們建立第一個表:
mysql> create table demo3 −> ( −> value int −> ); Query OK, 0 rows affected (1.39 sec)
使用insert命令將一些記錄插入表中:
mysql> insert into demo3 values(10); Query OK, 1 row affected (0.13 sec) mysql> insert into demo3 values(20); Query OK, 1 row affected (0.08 sec) mysql> insert into demo3 values(30); Query OK, 1 row affected (0.08 sec)
使用select語句顯示錶中的記錄:
mysql> select *from demo3;
這將產生以下輸出:
+-------+ | value | +-------+ | 10 | | 20 | | 30 | +-------+ 3 rows in set (0.00 sec)
建立第二個表的查詢如下:
mysql> create table demo4 −> ( −> value1 int −> ); Query OK, 0 rows affected (2.10 sec)
使用insert命令將一些記錄插入表中:
mysql> insert into demo4 values(40); Query OK, 1 row affected (0.10 sec) mysql> insert into demo4 values(10); Query OK, 1 row affected (0.09 sec) mysql> insert into demo4 values(60); Query OK, 1 row affected (0.17 sec)
使用select語句顯示錶中的記錄:
mysql> select *from demo4;
這將產生以下輸出:
+--------+ | value1 | +--------+ | 40 | | 10 | | 60 | +--------+ 3 rows in set (0.00 sec)
以下是建立第三個表的查詢。
mysql> create table demo5 −> ( −> value2 int −> ); Query OK, 0 rows affected (2.13 sec)
使用insert命令將一些記錄插入表中:
mysql> insert into demo5 values(100); Query OK, 1 row affected (0.09 sec) mysql> insert into demo5 values(60); Query OK, 1 row affected (0.14 sec) mysql> insert into demo5 values(50); Query OK, 1 row affected (0.10 sec)
使用select語句顯示錶中的記錄:
mysql> select *from demo5;
這將產生以下輸出:
+--------+ | value2 | +--------+ | 100 | | 60 | | 50 | +--------+ 3 rows in set (0.00 sec)
以下是限制跨表總結果數的查詢:
mysql> select tbl.* −> from ((select * from demo3 ORDER BY value DESC LIMIT 2 −> ) UNION ALL −> (select * from demo4 ORDER BY value1 DESC LIMIT 2 −> ) UNION ALL −> (select * from demo5 ORDER BY value2 DESC LIMIT 2 −> ) −> ) tbl −> −> LIMIT 2;
這將產生以下輸出:
+-------+ | value | +-------+ | 30 | | 20 | +-------+ 2 rows in set (0.00 sec)
廣告
資料結構
網路
關係型資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP