多表连接SQL删除

[复制链接]
查看11 | 回复3 | 2010-8-26 15:32:38 | 显示全部楼层 |阅读模式
sql = "select tb_member.MEMID,NAME,CLASSNAME,POINTS from tb_member LEFT OUTER JOIN tb_score ON tb_member.MEMID= tb_score.MEMID LEFT OUTER JOIN tb_class ON tb_class.CLASSID=tb_score.CLASSID";
tb_member表MEMID是主键,tb_class表CLASSID是主键 ,tb_score表有3个字段MEMID,CLASSID,POINTS。。2个ID都是外键与其他2个表关联。。我如何删除查询出的结果对应的行?
比如查询出结果是
MENID NAME CLASSNAME POINTS
1
张三 语文
75
删除此行

回复

使用道具 举报

千问 | 2010-8-26 15:32:38 | 显示全部楼层
如果你只是需要不要查询结果里的数据,你这样操作即可。将tb_score中的相关数据删除即可。比如:你不想要张三的数据显示出来,张三的menid是1.你这样操作。delete from tb_score where menid=1即可。如果要删除多个人的分数你可以这样:delete from tb_score where menid in(1,2,3)等。建议你不要去删除tb_member和tb_class中的数据。因为这些数据是基础数据,你删除了,就不能恢复了。除非你真的不打算要这些数据。如果只是不要显示结果,你只需要删除tb_score中的相关数据即可。这样你查询出来的数据就没有这些内容了。
回复

使用道具 举报

千问 | 2010-8-26 15:32:38 | 显示全部楼层
多表查询是一种集合性的查询,你要执行删除操作的话需要明确哪张表的数据是需要删除的删除查询的结果是没有意义的,因为查出来的值只是一个虚拟表比如说本例中你需要删除的应该是分数表中相应的分数,而其他表你不需要删除因为如果你把张三这个人的数据删除之后分数表中假设有张三此人的数学成绩该怎么办?
回复

使用道具 举报

千问 | 2010-8-26 15:32:38 | 显示全部楼层
有几个表的信息就分几次删除
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行