2012-10-06 47 views
0

如何删除以下查询返回的记录?删除返回的SQL结果

Select HL.User from "Hobby List" HL 
INNER JOIN (Select SUBSTRING(Code,1,10) Code,Count(SUBSTRING(CODE,1,10)) 
AS Occurances from Patient where length(Patient.Code) > 10 
Group By SUBSTRING(Code,1,10) 
Having COUNT(SUBSTRING(Code,1,10)) > 1) P 
on SUBSTRING(HL.User,1,10) = P.Code 
Group By HL.User 

我试图通过使用“删除是否存在”的做法,要么是错还是我没做正确,因为它删除表中的所有返回的记录,而不是只是那些删除的记录我的查询。

感谢

回答

2

试试这个:

DELETE FROM 'Hobby List' 
WHERE User IN 
(

Select HL.User from "Hobby List" HL 
INNER JOIN (Select SUBSTRING(Code,1,10) Code,Count(SUBSTRING(CODE,1,10)) 
AS Occurances from Patient where length(Patient.Code) > 10 
Group By SUBSTRING(Code,1,10) 
Having COUNT(SUBSTRING(Code,1,10)) > 1) P 
on SUBSTRING(HL.User,1,10) = P.Code 
Group By HL.User 

) 
3
DELETE FROM "Hobby List" HL WHERE HL.User IN (your query here) 

这应该这样做的相当不错,我这个在其他场景中使用了好几次。

http://www.w3schools.com/sql/sql_in.asp

+0

感谢那些伟大的工作。我只是不需要在删除子句中为业余爱好列表分配一个名称HL,它给了我一个错误,因为我在查询中将它命名了两次。但很容易理解。 – Trevor