我有一张桌子
id number name update_date
1 123 asd 08.05.18
2 412 ddd 08.05.18
3 123 dsa 14.05.18
4 125 dsa 05.05.18
整个表格就是那样的行。我需要选择第1行和第3行,因为我需要不同的update_dates但数字相同。怎么做?我需要在2个更新日期08.05.18和14.05.18之间查看特定数字的变化。我的表中有更多更新日期。
我试过了:
SELECT *
FROM legal_entity_history a
JOIN legal_entity_history b ON a.BIN = b.BIN
WHERE ( a.update_date <> b.update_date AND
a.update_date = "08.05.18" AND
b.update_date = "14.05.18" )
答案 0 :(得分:0)
试试这个:假设同一个号码在同一个update_date
下可能不会出现多次,那么,您可以使用GROUP BY
HAVING
来实现这一目标。以下
SELECT t.*
FROM test t
INNER JOIN (SELECT number
FROM test
GROUP BY number
HAVING COUNT(DISTINCT update_date) > 1) t1 ON t1.number = t.number
<强>输出强>:
id number name update_date
1 123 asd 08.05.18
3 123 dsa 14.05.18
答案 1 :(得分:0)
一种相对简单的方法是:
select leh.*
from legal_entity_history leh
where exists (select 1
from legal_entity_history leh2
where leh2.number = leh.number and leh2.update_date <> leh.update_date
);
为了提高性能,您需要legal_entity_history(number, update_date)
上的索引。