Bạn phải thêm một vị từ cho mỗi tổ hợp tên / giá trị:
SELECT <whatever you need>
FROM Entity_Table et
WHERE et.e_name = 'Joe'
AND EXISTS (SELECT 1
FROM AttributeValue_Table avt
JOIN Entity_AttrVal ea ON ea.e_id = et.e_id
WHERE ea.a_id = avt.av_id
AND avt.prop_name = 'color'
AND avt.prop_value = 'black')
AND EXISTS (SELECT 1
FROM AttributeValue_Table avt
JOIN Entity_AttrVal ea ON ea.e_id = et.e_id
WHERE ea.a_id = avt.av_id
AND avt.prop_name = 'whiskers'
AND avt.prop_value = 'short')
(Tôi xin lỗi nếu phương ngữ Máy chủ Sql của tôi vượt qua được)
Để thực hiện một số phép so sánh tùy ý, bạn phải tạo SQL và thực thi nó.
Như đã nói trong một bình luận, điều này cho thấy rằng EAV là một vấn đề (thực sự là một mô hình phản đối), nhưng theo kinh nghiệm, tôi biết rằng đôi khi không có giải pháp thay thế đơn giản nếu chúng ta bị ràng buộc vào một cơ sở dữ liệu quan hệ.