MySQL 合并选择?

mysqlmysqli database

要合并选择,您需要使用 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)

这是合并选择的查询 −

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)

相关文章