以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求指点一个SQL语句 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=173154) |
-- 作者:hitzfeld -- 发布时间:2021/11/17 1:49:00 -- 求指点一个SQL语句 SE/ECT * FROM 表1 left outer join 表2 on 表1.fvoucherID =表2.fvoucherID where fperiod = 11 能够得到正确的值,但是改为delete 则报错,查了好多资料都是mysql的,mysql的方法在mssql都无效,改不好。 |
-- 作者:zhutangxin -- 发布时间: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 )
|
-- 作者:有点蓝 -- 发布时间:2021/11/17 8:47:00 -- 贴出delete语句啊 |
-- 作者:hitzfeld -- 发布时间: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左右存在语法错误。
|
-- 作者:有点蓝 -- 发布时间:2021/11/17 16:00:00 -- 删除表1还是表2啊 |
-- 作者:hitzfeld -- 发布时间:2021/11/17 18:40:00 -- 蓝老师,是联动删除,表1和表2都存在fvoucherID,需要删除符合表1的fperiod = 11的全部记录,同时删除表2对应的记录。 |
-- 作者:hitzfeld -- 发布时间:2021/11/18 5:26:00 -- zhutangxin老师您好,您的代码也是报left附近存在错误。 |
-- 作者:有点蓝 -- 发布时间:2021/11/18 9:07:00 -- 这种用法我测试没有问题,一条sql语句只能删除一个表的数据,如果要删除2个表需要写2条语句,分开删除 另外自己把文字改了,注意改回来:de/ete a Fr0M
|