1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Kết hợp dữ liệu trong SQL

Connected

Bài tập

Chẩn đoán vấn đề bằng anti join

Làm tốt với semi join! Anti join là một công cụ join liên quan và rất mạnh. Nó đặc biệt hữu ích để xác định liệu có số lượng bản ghi không chính xác xuất hiện trong một phép join hay không.

Giả sử bạn muốn xác định đơn vị tiền tệ của các quốc gia thuộc châu Đại Dương (Oceania). Bạn đã viết INNER JOIN sau, trả về 15 bản ghi. Giờ bạn muốn đảm bảo rằng tất cả quốc gia châu Đại Dương từ bảng countries đều có trong kết quả này. Bạn sẽ làm điều đó ở bước đầu tiên.

SELECT c1.code, name, basic_unit AS currency
FROM countries AS c1
INNER JOIN currencies AS c2
ON c1.code = c2.code
WHERE c1.continent = 'Oceania';

Nếu có bất kỳ quốc gia châu Đại Dương nào bị loại khỏi INNER JOIN này, bạn muốn trả về tên của các quốc gia đó. Bạn sẽ viết một anti join để làm điều này ở bước thứ hai!

Hướng dẫn 1/2

undefined XP
    1
    2
  • Bắt đầu bằng cách viết truy vấn để trả về code và name (đúng thứ tự, không đặt bí danh) cho tất cả quốc gia thuộc continent là Oceania từ bảng countries.
  • Quan sát số lượng bản ghi trả về và so sánh với INNER JOIN đã cho, vốn trả về 15 bản ghi.