对标题表示歉意,但我正在尝试做超出我水平的事情,甚至让我来解释它。
假设我有一个包含变量 person、foods 和 amount 的表:
Person food Amount
Mike Butter 3
Mike Milk 4
Mike Chicken 2
Tim Milk 4
John Chicken 2
通过在查询中将表与其自身连接起来,我成功地创建了一个列表,其中食物是新变量的基础,值是数量。上表将变为:
Person Butter Milk Chicken
Mike 3 4 2
代码大约是:
Select
a.person,
b.amount as Butter,
c.amount as Milk,
d.amount as Chicken
from PersonFoodAmount a
inner join PersonFoodAmount b on a.person = b.person
inner join PersonFoodAmount c on a.person=c.person
where b.food='Butter'
and c.food='Milk'
and d.food='Chicken'
现在,这给了我迈克,因为他勾选了所有复选框。但我还需要部分匹配:
Person Butter Milk Chicken
Mike 3 4 2
Tim NULL 4 NULL
John NULL Null 2
我尝试过各种连接,包括完整的外部连接,但我仍然只得到冰箱装满的人。
有什么建议么?