MySQL Merge 查詢選擇


要合併select,你需要使用GROUP BY 子句。為了理解這個概念,讓我們建立一個表。建立表所用的查詢如下 −

mysql> create table MergingSelectDemo
   -> (
   -> RoomServicesId int,
   -> RoomId int,
   -> ServiceId int
   -> );
Query OK, 0 rows affected (1.98 sec)

現在你可以使用 insert 命令在表中插入一些記錄。查詢如下 −

mysql> insert into MergingSelectDemo values(10,10,10);
Query OK, 1 row affected (0.29 sec)
mysql> insert into MergingSelectDemo values(20,10,20);
Query OK, 1 row affected (0.22 sec)
mysql> insert into MergingSelectDemo values(30,10,30);
Query OK, 1 row affected (0.14 sec)
mysql> insert into MergingSelectDemo values(50,10,50);
Query OK, 1 row affected (0.19 sec)
mysql> insert into MergingSelectDemo values(110,20,20);
Query OK, 1 row affected (0.14 sec)
mysql> insert into MergingSelectDemo values(120,20,30);
Query OK, 1 row affected (0.37 sec)

使用select語句從表中顯示所有記錄。查詢如下 −

mysql> select *from MergingSelectDemo;

輸出如下 −

+----------------+--------+-----------+
| RoomServicesId | RoomId | ServiceId |
+----------------+--------+-----------+
|             10 |     10 |        10 |
|             20 |     10 |        20 |
|             30 |     10 |        30 |
|             50 |     10 |        50 |
|            110 |     20 |        20 |
|            120 |     20 |        30 |
+----------------+--------+-----------+
6 rows in set (0.00 sec)

這裡有將select合併到一起的查詢 −

mysql> select RoomId from MergingSelectDemo
   -> where ServiceId IN(10,20,30)
   -> group by RoomId
   -> HAVING COUNT(*)=3;

輸出如下 −

+--------+
| RoomId |
+--------+
|     10 |
+--------+
1 row in set (0.15 sec)

更新於: 2019-07-30

152 次觀看

開啟你的事業

透過完成課程獲得認證

開始
廣告
© . All rights reserved.