sql如何以主表为基准关联查询
方案一、用exists的方式.
如果test2表中的数据量很大的话,可以用exists的方式:
SELECT c1 from test1 a
WHERE exists (SELECT 1 FROM test2 b
WHERE a.c1 = b.c1);
如果结果集不需要test2表字段,也就是不需要联查取字段,则可行;否则,由于exists的局限,需要loop逐条对结果集进行判断,效率太低
方案二、在b中找唯一的列和a关联,或者增加条件.
select * from test1 left join test2 using(c1);
# using等价于
select * from test1 left join test2 on test1.c1 = test2.c1;
一般查询结果出问题了(没有得到想要的结果),都是一对多关系,所以pass
方案三、group by 关键值.
select * from test1 left join test2 group by c1;
亲测可用
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
评论已关闭