A、B两表,找出存在A表,但是不存在B表的数据。A的字段A.a_id,B的字段B.b_id。
除了大写的A和B外,其他的大写字母
方法一
使用 not in ,容易理解,效率低

SELECT
WHERE
	A.a_id NOT IN (SELECT b_id FROM B)

方法二
使用 left join…on… , “B.b_id IS NULL” 表示左连接之后在B.b_id 字段为 NULL 的记录

SELECT
LEFT JOIN B ON
	A.a_id=B.b_id
WHERE
	B.b_id IS NULL

方法三
逻辑相对复杂,但是速度最快

就是WHERE后查询语句,根据id查询:
如果A中有,B中也有,就为真,返回1,得到1=0不成立,就不输出
如果A中有,B中没有,就为假,返回0,得到0=0成立,就输出
即可以得到A中存在而B中不存在的数据

SELECT
WHERE
	(SELECT COUNT(1) AS num FROM B WHERE A.a_id=B.b_id)=0

根据我目前的使用,当三表以上时,第二种最好理解和使用。
如果有所错误,希望能够指正出来。

A、B两表,找出存在A表,但是不存在B表的数据。A的字段A.a_id,B的字段B.b_id。除了大写的A和B外,其他的大写字母方法一使用 not in ,容易理解,效率低SELECT *FROM AWHERE A.a_id NOT IN (SELECT b_id FROM B)方法二使用 left join…on… , “B.b_id IS NULL” 表示左连接之后在B.... 1、数据完整性简介 数据冗余是指数据库中存在一些重复的数据数据完整性是指数据库中的数据能够正确反应实际情况。 数据完整性是指数据的可靠性和准确性,数据完整性类型有四种: A、实体完整性:实体的完整性强制表的标识符列或主键的完整性(通过唯一约束,主键约束或标识列属性)。 B、域完整性:限制类型(数据类型),格式(通过检查约束和规则),可能值范围(通过外键约束,检查约束,默认值定义,非空约束和规则)。 C、引用完整性:在删除和输入记录时,引用完整性保持表之间已定义的关系。引用完整性确保键值在所有表中一致,不能引用不存在的值。如果一个键。 D、定义完整性:用户自己定义的业务规则
文章目录T-SQL基础技术基本语法格式代码准备:(可以按照我的实例自行建立数据库)1、投影查询a、投影指定的列b、投影全部列c、修改查询结果的列标题d、去掉重复行2、选择查询a.表达式比较b.范围比较c.模式匹配d.空值使用代码示例:3、连接查询a.连接谓词b.以JOIN关键字指定的连接(1)内连接(2)外连接4、统计计算5、排序查询6、子查询 T-SQL基础技术 T-SQL语言中最重要的部分是它的查询功能,查询语言用来对已经存在数据库中的数据按 照特定的行、列、条件表达式或者一定次序进行检索。 T-SQL对数据库的查询使用SELECT语句,SELECT语句具有灵活的使用方式和强大的功能,
//如果不存在,则插入新数据 $sql = “INSERT INTO {$ecs->table(‘cat_lang’)} (cat_id,lang_id,cat_name,keywords,cat_desc) VALUES({$cat_id},{$k},'{$val[‘cat_name’]}’,'{$val[‘keywords’]}’,'{$val[‘cat_desc’]}’) ON DUPLICATE KEY UPDATE cat_name='{$val[\u2018cat_name\u2019]}\u2019,cat_desc='{$val[‘cat_desc’]}’,keywords='{$val[‘cat_desc
创建表语法格式 create table [if not exists] 表名 (列名 数据类型 [not null | null] [default 列默认值] [primary key]...) engine = 存储引擎 语法说明: []表示可选项,|表示二选一 if not exists ,加一个判断,只有该表不存在时才执行 engine=存储引擎,mysql支持多存储引擎,不同的表可以有不同的存储引擎 显示数据库表结构语法格式 {describe | desc} 表名 [列名 | 通配符]; | 表示二选一 []表示可选项 通配符表示一个包含%或_的通配符的字符串,用于获取对于带有与字符串相匹配的名称的各列的输出。 创建数据表 显示数据表文件和表结构 select distinct A.ID from A where A.ID not in (select ID from B) 使用 left join...on... , "B.ID isnull" 表示左连接之后在B.ID 字段为 null的记录 select A.ID from A left join B on A.ID=B.ID where B.ID ... 删除A表在B表中存在的记录 第一种方式 select * from A where not exists (select 1 from B where A.ID = B.ID) 第二种方式 select * from A where (select count(1) as num from B where B.ID = A.ID) =... ①.我先查询出了不同的数据(测试) SELECT goods_id FROM `ecs_cangku_log` WHERE `goods_id` NOT IN ( SELECT goods_id FROM `ecs_goods` ) ② 执行删除那些不同的数据 delete fro... SELECT DISTINCT a.id FROM a WHERE a.ID NOT IN (SELECT id FROM b) 2、left join (表示左连接后,B表的id字段为null的记录。) select A.ID from A left join B on A.ID=B.I... select * from S where (select count(1) as num from P where S.ID = P.ID and P.STATUS = 'N' ) = 0
SQL查询-存在一个表而不在另一个表中数据 方法1:使用not in 容易理解,效率低,执行时间为1.395s select distinct a.id from a where a.id not in (select id from b) 方法2:使用left join on…where b.id is null 执行时间:0.739s select a.id from a left join...