我不确定这是否应该使用子查询或多个临时表...但任何帮助都会很棒!我试图在一个查询中执行以下操作。
我想拉出用户有Color = blue和Color = red的所有行。我有兴趣拉出这些多行来确定哪些用户将其颜色从蓝色变为红色,或从红色变为蓝色。
我现在的一般查询就是这个。有什么不对,怎么才能改进呢?谢谢!
SELECT * FROM Table a WHERE a.color='blue' AND a.color='red'
答案 0 :(得分:1)
我假设userId是定义用户的id,你可以用表中的任何内容替换。该问题称为Relational Division
。希望这可以帮助!
select * from table where color in ('blue','red') and userId in(select a.userId
from Table a
where a.color in ('blue','red')
group by a.userid //whatever defines user uniquely
having count(distinct a.color)=2)
答案 1 :(得分:-1)
MySQL不会像您希望的那样存储历史记录。您需要做的是每次用户更改颜色时都有另一个颜色历史记录表和日志条目。我会发布带有表结构的代码,但是有很多不同的方法可以做到这一点......所以没有表结构的问题没有得到表结构提议的答案。