Foxtable(狐表)用户栏目专家坐堂 → SQL not in语法请教


  共有2483人关注过本帖树形打印复制链接

主题:SQL not in语法请教

帅哥哟,离线,有人找我吗?
foxtablefans
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:68 积分:546 威望:0 精华:0 注册:2019/9/6 7:59:00
SQL not in语法请教  发帖心情 Post By:2019/9/17 12:26:00 [只看该作者]

我有一段SQL selec t * from{订单明细} where 订单号 not in (selec t 订单号 from{订单})
用来查询订单明细中没有与父表订单同步的明细 但是我手动添加了几个没有父行的记录 这段代码缺不显示任何记录 请教一下哪里有问题 

 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57596 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2019/9/17 13:23:00 [只看该作者]

没啥问题呀!

 回到顶部
帅哥哟,离线,有人找我吗?
foxtablefans
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:68 积分:546 威望:0 精华:0 注册:2019/9/6 7:59:00
  发帖心情 Post By:2019/9/17 13:27:00 [只看该作者]

是呀 我也感觉没问题 但是单独添加的行就是不显示

 回到顶部
帅哥哟,离线,有人找我吗?
foxtablefans
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:68 积分:546 威望:0 精华:0 注册:2019/9/6 7:59:00
  发帖心情 Post By:2019/9/17 13:35:00 [只看该作者]

看到这篇文章 
https://www.cnblogs.com/totian/p/7597300.html
改成exist好了

 回到顶部
帅哥哟,离线,有人找我吗?
ry2an
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:2 积分:70 威望:0 精华:0 注册:2021/8/24 15:06:00
  发帖心情 Post By:2021/8/24 15:15:00 [只看该作者]

遇到了相同的问题,明明改成IN就能正常运行筛选出存在于订单表中的订单号,但是改成not in就不行,也不报错,就是一行也显示不出来。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107846 积分:548581 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/8/24 15:50:00 [只看该作者]

看4楼链接说明,因为有空值,改为not exist用法

 回到顶部
帅哥哟,离线,有人找我吗?
ry2an
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:2 积分:70 威望:0 精华:0 注册:2021/8/24 15:06:00
  发帖心情 Post By:2021/8/24 15:56:00 [只看该作者]

绕了一个圈子,解决了。
首先尝试了题主自己回复的EXISTS方法,现在foxtable似乎已经不支持这个函数了,直接报错。
我的解法是 让        {订单} left join {订单明细}
之后加上       WHERE LEN{订单明细}[订单号] IS NULL
为什么要专门用一下长度函数呢?因为左连接后虽然没有对应的订单号,但是在查询表中的{订单明细}[订单号]的空着的格子居然不是NULL。即便用IS NOT NULL的查询条件也可以将其查出来。经过反复试验,使用LEN函数就解决了。

(记得吧链接部分括起来,要不然where就变成了连接中为{订单明细}加的一个条件了)

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107846 积分:548581 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/8/24 16:20:00 [只看该作者]

EXISTS是可以使用的,这个是数据库自己的功能,除非数据库本身不支持,和foxtable没有关系

 回到顶部