Computer >> Máy Tính >  >> Lập trình >> SQL

SQL Union

Khi bạn đang truy vấn một cơ sở dữ liệu, bạn có thể muốn kết hợp kết quả của hai hoặc nhiều SELECT các câu lệnh. Ví dụ:bạn có thể muốn lấy danh sách các thành phố mà khách hàng của bạn đặt trụ sở và các thành phố mà doanh nghiệp của bạn có chi nhánh. Bạn có thể chạy hai truy vấn để đạt được mục tiêu này, nhưng bạn có thể muốn có một kết quả trong một truy vấn.

Đó là nơi mà SQL UNION toán tử tham gia. UNION mệnh đề có thể được sử dụng để kết hợp các kết quả của hai hoặc nhiều SELECT truy vấn vào một tập kết quả duy nhất.

Trong hướng dẫn này, chúng ta sẽ phân tích những điều cơ bản về SQL UNION và thảo luận về nơi bạn có thể muốn sử dụng lệnh này khi bạn đang làm việc với cơ sở dữ liệu.

Trình làm mới truy vấn

Người lập trình sử dụng truy vấn để lấy thông tin từ cơ sở dữ liệu. Các truy vấn hầu như luôn bắt đầu bằng SQL SELECT và được sử dụng để truy xuất dữ liệu dựa trên một tập hợp các tiêu chí. Các truy vấn thường bao gồm FROM toán tử, cho biết bảng nào sẽ được truy vấn, trong số các toán tử khác có thể lọc dữ liệu kết quả.

Đây là cú pháp chung cho SQL truy vấn:

SELECT column_name FROM table_name WHERE your_condititions_are_met;

Đây là một ví dụ về SQL truy vấn trả về danh sách tất cả tên nhân viên:

SELECT name FROM employees;

Kết quả từ truy vấn của chúng tôi như sau:

name
Luke
Mike
Hannah
Geoff
Alexis
Emma
Jonah

(7 hàng)

81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia một cuộc thi đào tạo. Kết hợp với bootcamp ngay hôm nay.

Sinh viên tốt nghiệp bootcamp trung bình đã dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.

Nếu bạn muốn truy xuất thông tin từ nhiều cột, bạn có thể làm như vậy bằng cách tách tên cột bằng dấu phẩy. Nếu bạn muốn lấy dữ liệu từ mọi cột, bạn có thể sử dụng dấu hoa thị (* ) thay vào đó, đại diện cho mọi cột trong bảng.

SQL Union

SQL UNION toán tử có thể được sử dụng để kết hợp các kết quả của hai hoặc nhiều truy vấn thành một phản hồi duy nhất dẫn đến một bảng.

Để sử dụng UNION , hai điều kiện phải được đáp ứng. Thứ nhất, kiểu dữ liệu của các cột mới phải tương thích — nếu lương là một số nguyên trong một bảng và một float trong bảng kia, thì liên minh sẽ không hoạt động. Thứ hai, số lượng và thứ tự của các cột phải giống nhau trong các truy vấn của bạn.

Đây là cú pháp cho SQL UNION truy vấn:

SELECT column_name FROM table1_name
UNION SELECT column_name FROM table2_name;

Hãy sử dụng một ví dụ để minh họa cách sử dụng SQL UNION nhà điều hành hoạt động. Giả sử chúng tôi là một doanh nghiệp cần gửi thông báo đến tất cả khách hàng của mình. Chúng tôi cũng muốn tất cả nhân viên được gửi thông báo này để họ biết những gì đang diễn ra.

Chúng tôi có thể sử dụng SQL sau truy vấn để có được danh sách các email của cả khách hàng và nhân viên của chúng tôi để chúng tôi có thể gửi tất cả thông báo cho họ:

SELECT name, email FROM employees
UNION SELECT name, email FROM customers;

Đây là kết quả từ truy vấn của chúng tôi:

name email
Emma emma.a@gmail.com
Jonah jonah.h@gmail.com
Hannah hannah.y@gmail.com
Luke luke.e@gmail.com
John john.p@outlook.com
Geoff geoff.l@gmail.com
Alexis alexis.e@gmail.com
Fred fred.s@gmail.com
Erin erin.a@gmail.com
Katy katy.l@gmail.com
Anne anne.s@gmail.com
Tom tom.h@gmail.com
Mike mike.h@gmail.com
Hannah hannah.p@gmail.com

(14 hàng)

Như bạn có thể thấy, UNION của chúng tôi truy vấn trả về danh sách tất cả tên và địa chỉ email cho cả khách hàng và nhân viên của chúng tôi.

Cần lưu ý rằng UNION toán tử loại bỏ các hàng trùng lặp khỏi kết quả cuối cùng được kết hợp. Điều này có nghĩa là nếu một trong những nhân viên của chúng tôi cũng là khách hàng, chúng tôi sẽ chỉ xem thông tin của họ một lần.

Trong khi điều này được giải quyết trong ví dụ trên, nếu bạn muốn trả về một kết quả bao gồm các hàng trùng lặp, bạn sẽ cần thêm ALL từ khóa cho truy vấn của bạn. Đây là một ví dụ:

SELECT name, email FROM employees
UNION ALL
SELECT name, email FROM customers;

Kết luận

Trong hướng dẫn này, chúng tôi đã chia nhỏ cách sử dụng UNION toán tử trên SQL máy chủ. Như chúng ta đã thảo luận, UNION có thể được sử dụng để lấy dữ liệu từ hai bảng và kết hợp phản hồi thành một bảng duy nhất. Ví dụ:nếu bạn muốn nhận danh sách địa chỉ của nhà cung cấp và nhà phân phối — cả hai đều được lưu trữ trong các bảng riêng biệt — bạn có thể sử dụng UNION truy vấn.