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

두 테이블 중 가장 높은 것과 가장 낮은 것을 찾기 위한 단일 MySQL 쿼리는 무엇입니까?

<시간/>

두 테이블에서 가장 높은 값과 가장 낮은 값을 찾으려면 MAX() 및 MIN()을 사용하십시오. 결과는 두 개의 테이블에서 표시되어야 하므로 UNION을 사용해야 합니다. 먼저 테이블을 생성하겠습니다 -

mysql> create table DemoTable1
(
   UniqueId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   Score1 int
);
Query OK, 0 rows affected (0.76 sec)

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

mysql> insert into DemoTable1(Score1) values(56);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1(Score1) values(76);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1(Score1) values(65);
Query OK, 1 row affected (0.09 sec)

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

mysql> select *from DemoTable1;

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

+----------+--------+
| UniqueId | Score1 |
+----------+--------+
|        1 |     56 |
|        2 |     76 |
|        3 |     65 |
+----------+--------+
3 rows in set (0.00 sec)

다음은 두 번째 테이블을 생성하는 쿼리입니다 -

mysql> create table DemoTable2
(
   UniqueId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   Score2 int
);
Query OK, 0 rows affected (0.93 sec)

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

mysql> insert into DemoTable2(Score2) values(67);
Query OK, 1 row affected (0.68 sec)
mysql> insert into DemoTable2(Score2) values(94);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable2(Score2) values(98);
Query OK, 1 row affected (0.08 sec)

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

mysql> select *from DemoTable2;

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

+----------+--------+
| UniqueId | Score2 |
+----------+--------+
|        1 |     67 |
|        2 |     94 |
|        3 |     98 |
+----------+--------+
3 rows in set (0.00 sec)

다음은 2개의 테이블 중 가장 높은 값과 가장 낮은 값을 찾는 쿼리입니다 -

mysql> select max(commonValue) AS Highest_Value,min(commonValue) AS Lowest_Value from
(
   select Score1 as commonValue from DemoTable1
   union
   select Score2 as commonValue from DemoTable2
) tbl;

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

+---------------+--------------+
| Highest_Value | Lowest_Value |
+---------------+--------------+
|            98 |           56 |
+---------------+--------------+
1 row in set (0.04 sec)