select count (1)?SQL语句理解select * from B where (select count(1) as num from A where A.ID = B.ID) = 0?

3天前 (07-28 01:14)阅读2回复0
kewenda
kewenda
  • 管理员
  • 注册排名1
  • 经验值377735
  • 级别管理员
  • 主题75547
  • 回复0
楼主
其实就是计算一共有多少符合条件的行。而是表示一个固定值。这个字段就是固定值1,count(2),返回的值完全是一样的。count(*),执行时会把星号翻译成字段的具体名字,A表id姓名性别00aa女01bb女02cc女B表id姓名性别00aa女02cc女03dd男select*fromB是执行B表。
  1. select count (1)?
  2. SQL语句理解select * from B where (select count(1) as num from A where A.ID = B.ID) = 0?

select count (1)?

count(1),其实就是计算一共有多少符合条件的行。1并不是表示第一个字段,而是表示一个固定值。其实就可以想成表中有这么一个字段,这个字段就是固定值1,count(1),就是计算一共有多少个1.同理,count(2),也可以,得到的值完全一样,count('x'),count('y')都是可以的。一样的理解方式。在你这个语句理都可以使用,返回的值完全是一样的。就是计数。count(*),执行时会把星号翻译成字段的具体名字,效果也是一样的,不过多了一个翻译的动作,比固定值的方式效率稍微低一些。

SQL语句理解select * from B where (select count(1) as num from A where A.ID = B.ID) = 0?

select count (1)?SQL语句理解select * from B where (select count(1) as num from A where A.ID = B.ID) = 0?

假设个例子吧:A表id姓名性别00aa女01bb女02cc女B表id姓名性别00aa女02cc女03dd男select*fromB是执行B表,当执行id=‘00’时,因为selectcount(1)asnumfromAwhereA.ID=B.ID不等于0所以运行结果没有第一行id=‘00’,当执行id=‘02’时,因为selectcount(1)asnumfromAwhereA.ID=B.ID不等于0所以运行结果没有第二行id=‘02’,当执行id=‘03’时,因为selectcount(1)asnumfromAwhereA.ID=B.ID的结果等于0,符合条件,所以运行结果会有第三行。运行结果为:id姓名性别03dd男所以:可以在B表中排除A表的数据。

0
回帖

select count (1)?SQL语句理解select * from B where (select count(1) as num from A where A.ID = B.ID) = 0? 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息