Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL 병합은 함께 선택합니까?

<시간/>

선택을 병합하려면 GROUP BY 절을 사용해야 합니다. 개념을 이해하기 위해 테이블을 만들어 보겠습니다. 테이블을 생성하는 쿼리는 다음과 같습니다 -

mysql> 테이블 생성 MergingSelectDemo -> ( -> RoomServicesId int, -> RoomId int, -> ServiceId int -> ), 쿼리 확인, 영향을 받는 행 0개(1.98초)

이제 insert 명령을 사용하여 테이블에 일부 레코드를 삽입할 수 있습니다. 쿼리는 다음과 같습니다 -

mysql> Insert into MergingSelectDemo values(10,10,10);Query OK, 1개의 row가 영향을 받음(0.29초)mysql> insert into MergingSelectDemo values(20,10,20);Query OK, 1개의 row가 영향을 받음(0.22초) )mysql> MergingSelectDemo 값에 삽입(30,10,30); 쿼리 확인, 1행 영향(0.14초) mysql> MergingSelectDemo 값에 삽입(50,10,50), 쿼리 확인, 1행 영향(0.19초) mysql> Insert into MergingSelectDemo values(110,20,20);Query OK, 1개의 row가 영향을 받았습니다(0.14초)mysql> insert into MergingSelectDemo values(120,20,30);Query OK, 1개의 row가 영향을 받았습니다(0.37초)

select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -

mysql> select *from MergingSelectDemo;

다음은 출력입니다 -

+----------------+--------+-----------+| 룸서비스 아이디 | 룸아이디 | 서비스 ID |+----------------+--------+-----------+| 10 | 10 | 10 || 20 | 10 | 20 || 30 | 10 | 30 || 50 | 10 | 50 || 110 | 20 | 20 || 120 | 20 | 30 |+----------------+--------+-----------+6행 세트(0.00초) 

선택을 병합하는 쿼리는 다음과 같습니다. −

mysql> MergingSelectDemo에서 RoomId 선택 -> 여기서 ServiceId IN(10,20,30) -> RoomId별로 그룹화 -> HAVING COUNT(*)=3;

다음은 출력입니다 -

+--------+| 방 ID |+--------+| 10 |+--------+1 행 세트(0.15초)