如果下:TempSalesPriceFixedValues表和SalesPriceFixedValues表,要求查询出在TempSalesPriceFixedValues表中且不在SalesPriceFixedValues表中的记录. select distinct Ctyp from TempSalesPriceFixedValues where Ctyp not in ( select distinct ConditonTypeCode from SalesPriceFixedValues
这里的in后面的句子可以理解为or拼接,简单举例即 in (9566,9839,null)可以等价于mgr=9566 or mgr=9839 or mgr=null, not in (9566,9839,null)可以等价于not(mgr=9566 or mgr=9839 or mgr=null)或mgr!=9566 and mgr!=9839 and mgr!=null. 为什么都是or拼接,in可以而not in不可以呢,可以把not in理解为后面的and表达式就知道了,因为mgr=nul
情景: 现在有如图两个表,boy和girl,对应着Boy和Girl两个bean,有共同字段id.name,另外boy还有个外键grilfriend(指向girl的id) 现在要查询所有的Boy,如果有girlfriend的话就把girl的name也取出来,赋值给boy.girl.name 我写了一条SQL:"SELECT b.name,g.name FROM boy b , girl g WHERE g.id=b.girlfriend;" 问题: 因为有的boy有girlfrien
子查询返回有单行,多行和null值:适用于单行子查询的比较运算符是=,>,>=,<,<=<>和!=.适用于多行子查询的比较运算符是in,not in,any和any.在子查询中不可回避的是会返回null值,下面就这个问题来讨论一下. 在单行子查询中 SQL> select last_name,department_id from employees where department_id is null; LAST_NAME DEPARTMENT_ID -----
为什么sql里面not in后面的子查询如果有记录为NULL的,主查询就查不到记录???原因很简单: SELECT * FROM dbo.TableA AS a WHERE a.id NOT IN ( 2, NULL ) –等同于: SELECT * FROM Table_A AS a WHERE a.id <> 2 AND a.ID <> NULL 由于NULL值不能参与比较运算符,导致条件不成立,查询不出来数据. 转载:https://blog.csdn.net/coder_o
分页查询项目里太多了,而这种分页查询,在mybatis里面的配置几乎一模一样,今天就整理一个比较好和实用的模板,供以后直接Ctrl+C <select id="queryMember" resultMap="MemberInfoMap"> select * from ( select ROW_NUMBER() over(order by m.create_time) page, m.*, T.TEAM_NAME from MC_MEMBER m left
drop database if exists simple; create database simple; use simple; drop table if exists sys_user; create table sys_user ( id bigint not null auto_increment comment '用户ID', ) comment '用户名', user_password ) comment '密码', user_email ) comment '邮箱', use