Ví dụ:Làm cách nào để chọn khóa chính có khóa ngoài chính xác khớp với danh sách giá trị đã cho?
pk_ref fk
====== ===
1 a
1 b
1 c
2 a
2 b
2 d
Làm thế nào để làm một truy vấn như "giả" truy vấn: kết quả truy vấn
select distinc pk_ref
where fk in all('a', 'c');
Sự trở lại phải phù hợp với tất cả các giá trị nhất định cho chính nước ngoài trong danh sách.
Kết quả sẽ là:
1
Trong khi chọn sau đây không phải trả lại bất kỳ hồ sơ.
select distinc pk_ref
where fk in all('a', 'c', 'd');
Tôi làm như thế nào?
bạn đang sử dụng SQL Server? –
có, nhưng nếu có chuẩn sql bất kể động cơ db thì sẽ tốt hơn. –
Danh sách giá trị fk "biến" được chuyển vào như thế nào? Một cách tiếp cận chung có thể là có một truy vấn phụ nơi bạn chọn pk, fk riêng biệt, nơi fk trong danh sách và trong truy vấn bên ngoài bạn nhóm theo pk và đếm các hàng. Nhưng đối với bộ lọc cuối cùng (mệnh đề HAVING), bạn cần phải biết có bao nhiêu giá trị trong danh sách, vì vậy bạn cần có khả năng đếm chúng. Vậy ... danh sách được đưa ra như thế nào? – mathguy