【发布时间】:2017-01-09 23:56:40
【问题描述】:
给定以下架构:
employees
id | name
employee_attributes
id | employee_id | key | value
我想选择所有具有所提供属性的员工。
以下语句有效:
SELECT employees.* FROM employees
INNER JOIN employee_attributes ON employee_attributes.employee_id = employees.id
WHERE employee_attributes.key = 'foo' AND employee_attributes.value = 'bar'
但只允许我通过一个属性找到员工。如何调整它以通过多个属性检索员工?
需要明确的是,如果我提供 两组 属性来匹配,则查询应该只返回具有至少这两个属性的员工。
例如,如果 Bob 只有一个属性:
key | value
===========
foo | bar
但我为查询提供了两个属性(foo 和 bar、bin 和 baz),不应返回 Bob。
【问题讨论】: