문제
mysql> select count(id) total from applicants;
+-------+
| total |
+-------+
| 0 |
+-------+
1 row in set (0.00 sec)
mysql> select count(id) total from jobs;
+-------+
| total |
+-------+
| 0 |
+-------+
1 row in set (0.00 sec)
mysql> select count(id) total from applicants union select count(id) total from
jobs;
+-------+
| total |
+-------+
| 0 |
+-------+
1 row in set (0.00 sec)
mysql>
"0"이 값으로 두 개의 레코드가 없어야합니까?
해결책
연합은 모두 두 가지 진술을 할 것입니다. Union은 항목을 결합하거나 중복 행을 제거하려고 시도합니다.
다른 팁
인용 MySQL 매뉴얼 :
Union의 기본 동작은 결과에서 중복 행이 제거된다는 것입니다.. 선택적 고유 한 키워드는 중복 열 제거를 지정하기 때문에 기본값 이외의 영향을 미치지 않습니다. 모든 키워드 옵션을 사용하면 중복 행 제거가 발생하지 않으며 결과에는 모든 선택 문의 모든 일치하는 행이 포함됩니다.
즉,만으로 UNION
, 두 줄이 같은 값을 갖는 경우 그 중 하나는 반환되지 않습니다.
mysql> select 1 union select 1;
+---+
| 1 |
+---+
| 1 |
+---+
1 row in set (0.00 sec)
그러나 사용하는 경우 UNION ALL
, 복제물은 제거되지 않습니다.
mysql> select 1 union all select 1;
+---+
| 1 |
+---+
| 1 |
| 1 |
+---+
2 rows in set (0.00 sec)
Union은 복제를 제거합니다. 대신 유니언을 시도하십시오.
제휴하지 않습니다 StackOverflow