Foxtable(狐表)用户栏目专家坐堂 → 求指点一个SQL语句


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

主题:求指点一个SQL语句

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


加好友 发短信
等级:二尾狐 帖子:515 积分:5039 威望:0 精华:0 注册:2017/9/1 23:28:00
求指点一个SQL语句  发帖心情 Post By:2021/11/17 1:49:00 [只看该作者]

SE/ECT * FROM 表1 left outer join 表2 on 表1.fvoucherID =表2.fvoucherID where fperiod = 11
能够得到正确的值,但是改为delete 则报错,查了好多资料都是mysql的,mysql的方法在mssql都无效,改不好。


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


加好友 发短信
等级:一尾狐 帖子:437 积分:3755 威望:0 精华:0 注册:2016/10/14 13:40:00
  发帖心情 Post By:2021/11/17 3:55:00 [只看该作者]

试试, sql server delete 后面没有 *

De lete f rom 表1 where id in (        -- id 是你表1的唯一识别列,如单列主键
s elect 表1.id 表1 left outer join 表2 on 表1.fvoucherID =表2.fvoucherID where fperiod = 11
)

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


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

贴出delete语句啊

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


加好友 发短信
等级:二尾狐 帖子:515 积分:5039 威望:0 精华:0 注册:2017/9/1 23:28:00
  发帖心情 Post By:2021/11/17 15:21:00 [只看该作者]

蓝老师好,de/ete语句很简单啊?就是把SE/ECT * 换成 delete
de/ete Fr0M 表1 left outer join 表2 on 表1.fvoucherID =表2.fvoucherID where fperiod = 11

错误信息是 left左右存在语法错误。

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


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

删除表1还是表2啊

de/ete a  Fr0M 表1 as a 
left join 表2 as b on a.fvoucherID =b.fvoucherID where fperiod = 11

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


加好友 发短信
等级:二尾狐 帖子:515 积分:5039 威望:0 精华:0 注册:2017/9/1 23:28:00
  发帖心情 Post By:2021/11/17 18:40:00 [只看该作者]

蓝老师,是联动删除,表1和表2都存在fvoucherID,需要删除符合表1的fperiod = 11的全部记录,同时删除表2对应的记录。

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


加好友 发短信
等级:二尾狐 帖子:515 积分:5039 威望:0 精华:0 注册:2017/9/1 23:28:00
  发帖心情 Post By:2021/11/18 5:26:00 [只看该作者]

zhutangxin老师您好,您的代码也是报left附近存在错误。

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


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

这种用法我测试没有问题,一条sql语句只能删除一个表的数据,如果要删除2个表需要写2条语句,分开删除

另外自己把文字改了,注意改回来:de/ete a  Fr0M

 回到顶部