背景:是的,我又开始写sql了,这次写,明显感觉上次写sql留下了一些记忆,这次写起来,好多了,多亏了之前做笔记的习惯,常用的sql代码,都可以复用。
场景:模型做完,跑线下测试,批量预估,由于产品设置要求,一共预估了A、B、C三个数据集,但是实际上,真正要评估的只有C数据集,因此,我需要从A、B、C这三个合并在一起的数据集中,将C数据集取出来。
思考解法:
- 观察这两个数据集,他们都有impression_id,这是主键,外键,我们可以用这个外键来将这两个数据集连接起来。用
on t1.impression_id = t2.impression
- 然后确定,我们是要从哪个数据集中取数据,ABC数据集为t2,C数据集为t1,因此,最后代码写为
select t2.* from t2 inner join t1 where t2.impression_id = t1.impression_id
需要注意一下,开始时候,我写的是
select * from t2 inner join t1 where t2.impression_id = t1.impression_id
但是报错了,我估计是因为在这里出现了两个数据集,程序不知道从哪个数据集去取数。
网友评论