一个简单的问题?
有两个表
TEST1包含两个字段ID,NAME
TEST 一个字段NAME
这样的SQL为什么不能执行?
DELETE TEST WHERE TEST.NAME=TEST1.NAME
为什么必须要这样才行?
DELETE TEST WHERE TEST.NAME IN (SELECT TEST.NAME FROM TEST,TEST1 WHERE TEST.NAME=TEST1.NAME)
问题点数:100、回复次数:6Top
1 楼icewhite(默涵)回复于 2003-06-04 19:08:33 得分 0
语法,规则罢了!Top
2 楼jljlwsy()回复于 2003-06-04 20:26:48 得分 0
规则Top
3 楼llm06(blacksheep)回复于 2003-06-04 20:40:47 得分 50
delete from test where test.name in (select name from test1)
WHERE TEST.NAME=TEST1.NAME 这个是用来做连接表查询用的
delete 时where子句必须是一种确定的逻辑关系Top
4 楼things(Loving You)回复于 2003-06-04 21:50:53 得分 0
同意llm06(blacksheep)
语法问题Top
5 楼BlueskyWide(谈趣者)回复于 2003-06-05 08:50:32 得分 50
“多对多”的变成“一对多”。
Top
6 楼shuipipi(水皮皮)回复于 2003-06-05 09:10:48 得分 0
delete from tab1 where exist (select 1 from tab where tab1.id = tab.id);Top



