집 >데이터 베이스 >MySQL 튜토리얼 >MySQL 쿼리 데이터 병합 쿼리 결과
.
select column,...from table1union [all]select column,... from table2
(무료 학습 권장 사항: mysql 비디오 튜토리얼)
[예제 1] 가격이 9 미만인 모든 과일의 정보를 쿼리하고, s_id가 같음을 쿼리합니다. to 101 및 103 all 과일 정보의 경우 Union을 사용하여 쿼리 결과를 연결합니다. SQL 문은 다음과 같습니다.
mysql> select s_id,f_name,f_price -> from fruits -> where f_price <9.0 -> union all -> select s_id,f_name,f_price -> from fruits -> where s_id in(101,103);+------+------------+---------+| s_id | f_name | f_price |+------+------------+---------+| 104 | lemon | 6.40 || 101 | apple | 5.20 || 103 | apricot | 2.20 || 104 | berry | 7.60 || 107 | xxxx | 3.60 || 105 | melon | 8.20 || 101 | cherry | 3.20 || 105 | xbabay | 2.60 || 102 | grape | 5.30 || 107 | xbabay | 3.60 || 101 | apple | 5.20 || 103 | apricot | 2.20 || 101 | blackberry | 10.20 || 101 | cherry | 3.20 || 103 | coconut | 9.20 |+------+------------+---------+15 rows in set (0.06 sec)
union은 여러 select 문의 결과를 결과 집합으로 결합합니다. 각 Select 문의 결과를 별도로 볼 수 있습니다.
mysql> select s_id,f_name,f_price -> from fruits -> where f_price < 9.0;+------+---------+---------+| s_id | f_name | f_price |+------+---------+---------+| 104 | lemon | 6.40 || 101 | apple | 5.20 || 103 | apricot | 2.20 || 104 | berry | 7.60 || 107 | xxxx | 3.60 || 105 | melon | 8.20 || 101 | cherry | 3.20 || 105 | xbabay | 2.60 || 102 | grape | 5.30 || 107 | xbabay | 3.60 |+------+---------+---------+10 rows in set (0.00 sec)mysql> select s_id,f_name,f_price -> from fruits -> where s_id in(101,103);+------+------------+---------+| s_id | f_name | f_price |+------+------------+---------+| 101 | apple | 5.20 || 103 | apricot | 2.20 || 101 | blackberry | 10.20 || 101 | cherry | 3.20 || 103 | coconut | 9.20 |+------+------------+---------+5 rows in set (0.00 sec)
별도의 쿼리 결과에서 첫 번째 Select 문은 가격이 9 미만인 과일을 쿼리하고, 두 번째 Select 문은 공급업체 101 및 103에서 제공한 과일을 쿼리하는 것을 확인할 수 있습니다.
[예제 2] 가격이 9 미만인 모든 과일의 정보를 쿼리하고, s_id가 101과 103인 모든 과일의 정보를 쿼리하고, Union all을 사용하여 쿼리 결과를 연결하면, SQL 문은 다음과 같습니다.
mysql> select s_id,f_name,f_price -> from fruits -> where f_price<9.0 -> union all -> select s_id,f_name,f_price -> from fruits -> where s_id in(101,103);+------+------------+---------+| s_id | f_name | f_price |+------+------------+---------+| 104 | lemon | 6.40 || 101 | apple | 5.20 || 103 | apricot | 2.20 || 104 | berry | 7.60 || 107 | xxxx | 3.60 || 105 | melon | 8.20 || 101 | cherry | 3.20 || 105 | xbabay | 2.60 || 102 | grape | 5.30 || 107 | xbabay | 3.60 || 101 | apple | 5.20 || 103 | apricot | 2.20 || 101 | blackberry | 10.20 || 101 | cherry | 3.20 || 103 | coconut | 9.20 |+------+------------+---------+15 rows in set (0.00 sec)
여기서 합계가 두 개의 select 문에서 반환된 레코드 수의 합과 같다는 것을 알 수 있습니다. 조인 쿼리 결과는 중복 행을 제거하지 않습니다.
union과 Union all의 차이점:
union all
를 사용하는 기능은 중복 행을 삭제하는 것이 아닙니다. all 키워드 문은 실행 시 리소스가 덜 필요하므로 최대한 사용하세요. 더 많은 관련 무료 학습 권장 사항: mysql 튜토리얼(동영상)
위 내용은 MySQL 쿼리 데이터 병합 쿼리 결과의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!