2016-10-15 127 views
0

我的数据库表看起来像这样得到共同的价值观:MYSQL - 来自多个查询

enter image description here

我想运行一个查询,将返回所有常见的USER_ID的地方 - 例如,field_id = 552 AND value = 'Savannah' AND field_id = 553 AND value = 'GA' AND field_id = 554 AND value = 'USA'。 (所以在这种情况下,基于截图中可见的记录,结果将简单地为'1')。

我一直在寻找连接与联合,但我觉得我已经下了兔子洞,找不到我的方式回来。

这可能吗?

回答

1

下面是使用conditional aggregation一个选项:

select user_id 
from yourtable 
group by user_id 
having max(case when field_id = 552 then value end) = 'Savannah' and 
     max(case when field_id = 553 then value end) = 'GA' and 
     max(case when field_id = 554 then value end) = 'USA' 
+0

这似乎做的正是我需要它,谢谢。 – user2614806