我有以下查询:
SELECT DISTINCT field1, field2 FROM table1 WHERE something = 'x' ORDER BY time_of_insertion DESC LIMIT 2
我想要的是获取表格的最后两个插入行,一个具有某个field1(例如'1')而另一个具有另一个field1(例如'2')。所以,它不是真正的最后两行,我想要的是来自某个某个field1的最后一行和来自不同field1的最后一行。当我尝试查询时,DISTINCT
未得到尊重。关于为什么以及如何解决这个问题的任何想法?
答案 0 :(得分:1)
我认为UNION
会做你想要的。使用您的确切条件选择一行,然后将其结果集与另一个选择了您想要的另一行的SELECT
语句的结果组合。
当你的榜样相当普遍时,很难具体而明确,但有些事情就是这样:
SELECT field1, field2 FROM table1 WHERE something = 'x' ORDER BY time_of_insertion DESC LIMIT 1
UNION
SELECT field1, field2 FROM table1 WHERE something = 'y' ORDER BY time_of_insertion DESC LIMIT 1;
注意它的一个陈述:只有第二个SELECT
有一个分号终止它。