Tôi đang cố gắng chọn các mục từ bảng kết hợp có thỏa mãn hai hoặc nhiều giá trị của cùng một trường, âm thanh khó hiểu, để tôi giải thích.MySQL Chọn ID xuất hiện trên các hàng khác nhau với nhiều giá trị cụ thể cho một cột
+-----------------------+
| item_id | category_id |
+-----------------------+
| 1 | 200 |
| 1 | 201 |
| 1 | 202 |
| 2 | 201 |
| 2 | 202 |
| 3 | 202 |
| 3 | 203 |
| 4 | 201 |
| 4 | 207 |
+-----------------------+
Trong bảng, tôi muốn chỉ có thể chọn các mục thuộc danh mục tôi vượt qua. Vì vậy, ví dụ, nếu tôi vượt qua ID danh mục 201 và 202, tôi chỉ muốn các mục có trong cả hai danh mục (chúng có thể có các danh mục khác nhưng cần phải có ít nhất các danh mục tôi đang truy vấn), vì vậy trong trường hợp này, tôi muốn mục 1 và 2 chỉ vì họ là những người duy nhất có trong loại 201 và 202.
câu lệnh SQL ban đầu của tôi là một cái gì đó giống như
SELECT * FROM item_category WHERE category_id = 201 AND category_id = 202;
Nhưng rõ ràng rằng sẽ không làm việc.
SELECT * FROM item_category WHERE category_id = 201 OR category_id = 202;
Truy vấn trên cũng sẽ không hoạt động vì nó cũng sẽ trả về các mục 4 và 3.
Vậy làm cách nào để tôi chỉ chọn các mục phải có ít nhất trong cả hai danh mục?
Hãy nhớ rằng tôi có thể chuyển nhiều hơn 2 ID danh mục.
Cảm ơn sự giúp đỡ của bạn.
Cảm ơn bạn, truy vấn thứ hai có vẻ phù hợp hơn trong trường hợp này và có vẻ hoạt động tốt! Cảm ơn một lần nữa! – flicker