Khi ràng buộc khóa ngoài bị tắt tạm thời (nạp dữ liệu lớn, import từ hệ thống cũ) hoặc chưa từng được khai báo, bảng con có thể chứa dòng "mồ côi": giá trị khóa ngoài không tồn tại ở bảng cha. Viết một truy vấn báo cáo số dòng mồ côi của 4 quan hệ sau (luôn in đủ 4 dòng, kể cả khi bằng 0):
| relation (nhãn cố định) | Cách đếm |
|---|---|
Accounts.customer_id -> Customers |
tài khoản có customer_id không có trong Customers |
Customers.referrer_id -> Customers |
khách có referrer_id không NULL nhưng không có trong Customers |
Orders.account_id -> Accounts |
lệnh có account_id không có trong Accounts |
Trades.order_id -> Orders |
giao dịch có order_id không có trong Orders |
Lưu ý: referrer_id = NULL nghĩa là không có người giới thiệu, không phải mồ côi. Sắp xếp theo nhãn relation (tăng dần).
Accounts, Customers, Orders, Trades.
relation, orphan_rows; 4 dòng, sắp theo relation.
Ví dụ:
Đầu vào:
Đầu ra:
Accounts.customer_id -> Customers 0
Customers.referrer_id -> Customers 0
Orders.account_id -> Accounts 0
Trades.order_id -> Orders 0
Giải thích:
Đang tải editor...