sql中有关联的两个表,怎么查出一个表中没有对应到另一个表的数据?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql中有关联的两个表,怎么查出一个表中没有对应到另一个表的数据?相关的知识,希望对你有一定的参考价值。

楼主好,连接后查询没有对应的数据很简单,假设你有一张产品表,还有一张销售表,而你想关联后找到哪些产品没有销售,代码如下:
select * from 产品表 a
left join 销售表 b on a.产品ID=b.产品ID
where b.产品ID is null
这样写就可以查找出产品表没有在销售表出现的数据。
顺便给楼主介绍一下几种关联:
join 左表(主表)和右表(子表)都存在的数据
left join 左表(主表)为查找全集,右表(子表)存在的关联出来,不存在的为NULL。
right join 刚好和left join相反
full join 相当于把left join 和right join 综合起来,即左表(主表)和右表(子表)关联,如果能关联到的显示,如果左有右表没有,则右表显示NULL,如果右表有左表没有 则左表显示NULL
参考技术A SELECT * FROM A WHERE ID NOT IN (SELECT ID FROM B)

将两个表中查出的两列信息放在同一个表中

 String sql_gd = "select * from TAX_INFO_GD where ID=\'"+gdid+"\'";
        Record gdRecord = Db.findFirst(sql_gd);
        String sql_sy = "select * from TAX_INFO where ID=\'"+syid+"\'";
        Record syRecord = Db.findFirst(sql_sy);

        String[] heardArr = {"纳税人识别号:","纳税人名称:","法定代表人:","法人身份证:","注册地址:","经营地址:","经营范围:","从业人数:","注册登记类型:","行业明细:","企业电话:","注册资本:","投资总额:"};
        String[] gdArr = {"SH_ID","NAME","FANREN","FR_ID","ZXDZ","SCJYDZ","JYFW","CYRS","DJZCLX","HANGYE","SCJY_TEL","ZCZB","TZZE"};
        String[] syArr = {"SHXYDM","NSR","FAREN","FRSFZ","ADDRESS","经营地址","JYFW","CYGR_NUM","ZCDJLX","TRADE","企业电话","ZCZB","投资总额"};

        //需要经过处理和填充的新List
        List<Record> newList = new ArrayList<>();
        for(int i=0;i<13;i++){
            Record record = new Record();
            record.set("HEARD",heardArr[i]);
            record.set("GD",gdRecord.get(gdArr[i]));
            record.set("SY",syRecord.get(syArr[i]));
            newList.add(record);
        }
        renderJson(newList);

使每一行均是   HEARD、GD、SY一一对应

产生如图所示

 

 

以上是关于sql中有关联的两个表,怎么查出一个表中没有对应到另一个表的数据?的主要内容,如果未能解决你的问题,请参考以下文章

查询一个表中所有数据并关联查询该表ID对应另一个表数据。

mysql查询语句例题

sql 查询 怎么样关联两个数据库的两个表

SQL SERVER中,如何把一个表中的数据导入到另一个表中?

两个表,一个表中的两列关联另一个表的id,如何将这个表中的两列显示为另一个表id对应的内容

update 更新多个表 SQL