sql删除一张表的写法是经常要用到的,很容易,写法如下:
delete from cc_product where id=5
(鼠标移到代码上去,在代码的顶部会出现四个图标,第一个是查看源代码,第二个是复制代码,第三个是打印代码,第四个是帮助)
这样就删除了cc_product表中id=5的产品
如果现在要删除最后登录时间为2010-05-01前用户的产品,应该怎么删除了?
产品表:cc_product,字段名:productid,userid,productname
用户名:cc_user,字段名:userid,username,LastLoginTime
按照我的习惯,写了以下代码
delete from cc_product p,cc_user u where u.userid=p.userid and LastLoginTime < '2010-05-01'
(鼠标移到代码上去,在代码的顶部会出现四个图标,第一个是查看源代码,第二个是复制代码,第三个是打印代码,第四个是帮助)
把这句拿到数据库中运行一下,sql语句运行出错。仔细分析了一下,也应该是出错。原因是,这句要删除cc_product表中的记录还是cc_user表中的记录呢?
所以出错是正常的。
功能:多表联合查询的delete语句的写法
开发:wangsdong
来源:www.aspbc.com
原创文章,转载请保留此信息
我找了一下,结果原来很简单,代码如下:
delete p from cc_product p,cc_user u where u.userid=p.userid and LastLoginTime < '2010-05-01'
(鼠标移到代码上去,在代码的顶部会出现四个图标,第一个是查看源代码,第二个是复制代码,第三个是打印代码,第四个是帮助)
这样就行了,只在delete后面加了一个p,也就是cc_product表,告诉这句话,要删除cc_product表。
这里是两表联合查询,三表,四表都是一样的。