mySQL UNION 연산 자의 기본 규칙 연구

3258 단어 SQLUNION 연산 자
 
/* */
create table td_base_data( id int(10) not null auto_increment,userId int(10) default '0',primary key (`id`))ENGINE=MyISAM DEFAULT CHARSET=gbk;
create table td_base_data_20090527( id int(10) not null auto_increment,userId int(10) default '0',primary key (`id`))ENGINE=MyISAM DEFAULT CHARSET=gbk;
/* */
insert into td_base_data(userId) values(1);
insert into td_base_data(userId) values(45);
insert into td_base_data(userId) values(45);
insert into td_base_data(userId) values(1);
insert into td_base_data(userId) values(45);
insert into td_base_data_20090527(userId) values(1);
insert into td_base_data_20090527(userId) values(45);
insert into td_base_data_20090527(userId) values(45);
insert into td_base_data_20090527(userId) values(1);
insert into td_base_data_20090527(userId) values(45);
insert into td_base_data_20090527(userId) values(45);
/* */
select count(userId) as cnumber from td_base_data where userId = '45';
/* 3 */
select count(userId) as cnumber from td_base_data_20090527 where userId = '45';
/* 4 */
select (select count(userId) from td_base_data where userId = '45') + (select count(userId) from td_base_data_20090527 where userId = '45') as cnumber;
/* 7 */
select count(*) from
(
select id from td_base_data where userId = '45'
union
select id from td_base_data_20090527 where userId = '45'
) as tx;
/* 4 */
select count(*) from
(
select * from td_base_data where userId = '45'
union
select * from td_base_data_20090527 where userId = '45'
) as tx;
/* 4 */
/* mysql ,union */

/* */
/*
my sql 참고 매 뉴 얼 조회:13.2.7.2.UNION 문법 은 UNION 에 키워드 ALL 을 사용 하지 않 으 면 모든 되 돌아 오 는 줄 이 유일한 것 입 니 다.전체 결과 집합 에 DISTINCT 를 사용 한 것 과 같 습 니 다.ALL 을 지정 하면 사용 한 모든 SELECT 구문 에서 일치 하 는 줄 을 얻 을 수 있 습 니 다.DISTINCT 키 워드 는 자체 선택 어로 아무런 역할 을 하지 않 지만 SQL 표준 의 요구 에 따라 문법 에서 사용 할 수 있 습 니 다.(MySQL 에서 DISTINCT 는 공용 체 의 기본 작업 성질 을 나 타 냅 니 다.)*/*my sql 에서 유 니 온 의 기본 값 은 DISTINCT 의*/*조회 mssql 참조 매 뉴 얼 임 을 증명 합 니 다.Transact-SQL 은 UNION 연산 자 를 참고 합 니 다.UNION 을 사용 하여 두 개의 조회 결과 집합 을 조합 하 는 두 가지 기본 규칙 은 다음 과 같 습 니 다.1.모든 조회 의 열 수 와 열 순 서 는 같 아야 합 니 다.2.데이터 형식 은 호 환 되 어야 합 니 다.인자:UNION 은 여러 결과 집합 을 조합 하여 하나의 결과 집합 으로 되 돌려 줍 니 다.ALL 은 중복 줄 을 포함 하여 결과 에 모든 줄 을 포함 합 니 다.지정 되 지 않 으 면 중복 줄 을 삭제 합 니 다.*/*mssql 에서 유 니 온 기본 값 도 DISTINCT 의*/*조회 표준 정의*/*조회 SQL 2003 표준:Transact-SQL 참고 4.10.6.2 Operator that operator on multisets and return multisets MULTISET UNION is an operator that computes the union of two multisets.There are two variants,specified using ALL or DISTINCT,to either retain duplicates or remove duplicates.7.13Syntax Rules 6)UNION,EXCEPT,or INTERSECT is specified and no ALL nor DISTINCT is specified,then DISTINCT is implicit.동시에 두 표 의 userId 필드 에 색인 을 만들어 조회 속 도 를 높 여야 합 니 다*/select count(userId)as cnumber from(select userId from tdbase_data where userId = '45' union all select userId from td_base_data_20090527 where userId = '45' ) as tx;

좋은 웹페이지 즐겨찾기