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

JOIN을 사용하여 상호 관계가 있는 행을 계산하는 MySQL 쿼리?

<시간/>

이를 위해 집계 함수 COUNT(*)를 사용합니다. 먼저 테이블을 생성하겠습니다 -

mysql> create table DemoTable1543
   -> (
   -> Value1 int,
   -> Value2 int
   -> );
Query OK, 0 rows affected (1.36 sec)

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

mysql> insert into DemoTable1543 values(57,60);
Query OK, 1 row affected (0.52 sec)
mysql> insert into DemoTable1543 values(60,68);
Query OK, 1 row affected (0.38 sec)
mysql> insert into DemoTable1543 values(90,98);
Query OK, 1 row affected (0.36 sec)
mysql> insert into DemoTable1543 values(98,90);
Query OK, 1 row affected (0.20 sec)

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

mysql> select * from DemoTable1543;

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

+--------+--------+
| Value1 | Value2 |
+--------+--------+
|     57 |     60 |
|     60 |     68 |
|     90 |     98 |
|     98 |     90 |
+--------+--------+
4 rows in set (0.00 sec)

다음은 두 열의 숫자 90과 같이 상호 관계가 있는 행을 계산하는 쿼리입니다. -

mysql> select count(*) from DemoTable1543 tbl1
   -> join DemoTable1543 tbl2
   -> on tbl1.Value2=tbl2.Value1
   -> where tbl1.Value1=90 and tbl2.Value2=90;

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

+----------+
| count(*) |
+----------+
|        1 |
+----------+
1 row in set (0.00 sec)