在同一表中选择多个条件

时间:2018-01-26 03:36:52

标签: mysql sql

我可能在考虑这个问题,但是这里的情况......我有一个功能是在修改其中一个描述性字段并将修改后的预订保存到表1中的新控件#。

表1

Control # | Booking # | Bunch of Descriptive Fields | Update # |
----------|-----------|-----------------------------|----------|
    1     |     1     |         ........            |     0    |
    2     |     2     |         ........            |     0    |
    3     |     3     |         ........            |     0    |
    4     |     1     |         ........            |     1    |
    5     |     4     |         ........            |     0    |
    6     |     2     |         ........            |     1    |
    7     |     1     |         ........            |     2    |

目标是让一个ObservableCollection填充一个过滤的表,其中在Booking#字段的Distinct值上使用每个相应Booking#的最高Update#选择行。我已经尝试了大多数所有SELECT解决方案来从网络创建表,包括UNION,JOIN,多个SELECT语句等,并且没有任何工作正常。我想要的是这样的结果表:

Control # | Booking # | Bunch of Descriptive Fields | Update # |
----------|-----------|-----------------------------|----------|
    7     |     1     |         ........            |     2    |
    6     |     2     |         ........            |     1    |
    3     |     3     |         ........            |     0    |
    5     |     4     |         ........            |     0    |

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

这是一种方法:

select t.*
from t
where t.update = (select max(t2.update) from t t2 where t2.booking = t.booking);

此解决方案在(booking, update)上的索引(两列,按此顺序)都可以获得非常好的性能。