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

MySQL에서 ID가 다른 동일한 테이블에서 공통 값을 갖는 행 가져오기

<시간/>

이를 위해 GROUP BY HAVING 절을 사용할 수 있습니다. 먼저 테이블을 생성하겠습니다 -

mysql> create table DemoTable1467
   -> (
   -> Id int,
   -> Name varchar(20)
   -> );
Query OK, 0 rows affected (0.64 sec)

삽입 명령을 사용하여 테이블에 일부 레코드 삽입 -

mysql> insert into DemoTable1467 values(100,'Chris');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable1467 values(110,'David');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1467 values(120,'Mike');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable1467 values(100,'Chris');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1467 values(130,'Carol');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1467 values(100,'Chris');
Query OK, 1 row affected (0.20 sec)

select 문을 사용하여 테이블의 모든 레코드 표시 -

mysql> select * from DemoTable1467;

이것은 다음과 같은 출력을 생성합니다 -

+------+-------+
| Id   | Name |
+------+-------+
|  100 | Chris |
|  110 | David |
|  120 | Mike  |
|  100 | Chris |
|  130 | Carol |
|  100 | Chris |
+------+-------+
6 rows in set (0.00 sec)

다음은 id가 다른 동일한 테이블에서 공통 값을 갖는 행을 가져오는 쿼리입니다 -

mysql> select Id,Name,count(*) as IdCount from DemoTable1467
   -> group by Id
   -> having IdCount > 2;

이것은 다음과 같은 출력을 생성합니다 -

+------+-------+---------+
| Id   | Name |  IdCount |
+------+-------+---------+
|  100 | Chris |       3 |
+------+-------+---------+
1 row in set (0.00 sec)