Tôi có một bảng như thế này:MySQL Nhiều trường hợp quy định tại khoản
id image_id style_id style_value
-----------------------------------
1 45 24 red
1 45 25 big
1 47 26 small
1 45 27 round
1 49 28 rect
Tôi muốn lấy cột image_id nếu:
style_id = 24
vàstyle_value = red
style_id = 25
vàstyle_value = big
style_id = 26
vàstyle_value = round
Tôi có làm một truy vấn như thế này:
$query = mysql_query("SELECT image_id FROM list WHERE (style_id = 24 AND style_value = 'red') AND (style_id = 25 AND style_value = 'big') AND (style_id = 27 AND style_value = 'round')
Nhưng tôi không thể nhận được bất kỳ kết quả. Khi tôi làm mẫu này với OR, nó hoạt động tốt. Nhưng tôi phải làm điều này với AND. Bởi vì tôi cần id hình ảnh mà là cả hai "đỏ, lớn và trực tràng".
Tôi đã thực hiện rất nhiều tìm kiếm với Google nhưng không thể giải quyết bất kỳ giải pháp nào.
Xin cảm ơn,
Hãy làm việc tốt.
Có bất kỳ sự phụ thuộc nào giữa style_id và style_value không? Đó là, style_id 24 có nghĩa là "màu đỏ", trong khi style_id 25 có nghĩa là "lớn"? – mdoyle
Có, tôi có một bảng khác có tên là "kiểu". Và một phong cách có 5-6 tùy chọn khác nhau. Ví dụ: style_id 24 có 5 tùy chọn khác nhau (đỏ, lục, vàng, ...). –
Bạn có thể cung cấp danh sách 'SHOW CREATE TABLE \ G' và' SHOW CREATE TABLE styles \ G', và cũng cung cấp một vài hàng mẫu từ bảng 'styles'? – mdoyle