例如,我有一个表A和B,其中包含以下数据:
答
user_name date1 count1 count2
X 15 1 1
X 30 1 3
Y 04 1 3
B:
user_name date1 count3 count4 status
X 15 11 1 Y
X 30 13 3 N
Y 04 16 3 NA
如何为每个Feedname连接这两个表并使用最大日期。 我需要这样的输出:
username date1 count1 count4 status
X 30 1 3 N
像这样的方式。
任何人都可以帮助解决这些问题。
答案 0 :(得分:0)
由于根据您的评论,两个表中都存在每个组合(user_name,date1),您可以使用例如。
select a.*, b.count3, b.count4, b.status
from tableA as a
join tableB as b
on a.user_name = b.user_name and
a.date1 = b.date1
where not exists
(select 1 from tableA as a1
where a1.user_name = a.user_name
and a1.date1 > a.date1);
您希望在(user_name, date1)
上设置索引以加快速度。
作为旁注:如果tableA
中的每个条目在tableB
中只有一个条目,反之亦然(如果情况确实如此,则说明不清楚,但是看起来像),因此(user_name, date1)
将成为两个表中的主键,您绝对应该将列count3
,count4
和status
添加到tableA
并摆脱tableB
。您仍然可以使用上面的代码(没有join
)来查找每个用户的最大条目。