Tôi có một bảng mysql T1 gồm hai cột INT liên kết một car_id với một part_id. Một car_id duy nhất có thể có nhiều part_ids và cùng một part_id có thể tương ứng với nhiều hơn một car_id. Ví dụ,MySQL Chọn giữa BẤT CỨ và TẤT CẢ
car_id part_id
1 1
1 2
1 8
2 3
3 4
4 2
4 6
...
10 1
10 2
...
20 1
20 2
20 8
Để có được tất cả các part_ids gắn liền với car_id = 1, tôi chạy truy vấn,
SELECT car_id, part_id FROM T1 WHERE car_id=1
và nhận được kết quả:
car_id part_id
1 1
1 2
1 8
Bây giờ, tôi muốn tìm tất cả các car_ids còn lại có chứa ít nhất (say> = 2/3) của các part_ids được liên kết với car_id = 1. (Trong ví dụ này, tôi sẽ nhận được tất cả các car_ids có ít nhất 2 trong số các part_ids 1,2 và 8 như được hiển thị sau truy vấn SELECT của tôi. Vì vậy, tôi sẽ nhận được car_ids 1,10 và 20).
Tôi có thể tìm car_ids chứa Tất cả các part_ids 1,2, và 8 sử dụng:
SELECT car_id, part_id
FROM T1
WHERE part_id = ALL (SELECT part_id FROM T1 WHERE car_id=1). The result is car_ids 1 and 20.
Tôi có thể tìm car_ids có chứa bất kỳ giá trị 1,2, và 8 sử dụng:
SELECT car_id, part_id
FROM T1
WHERE part_id = ANY (SELECT part_id FROM T1 WHERE car_id=1). The result is car_ids 1,4,10 and 20.
Làm cách nào để chỉ định một số số giữa BẤT K and VÀ TẤT CẢ?
cho biết những gì u mong đợi cho kết quả. viết một kết quả mong muốn –