Requires Free Membership to View
Assuming the one statement permits a subquery, it would be --
delete from table1
where exists
( select * from table2
where ID = table1.ID )
One database I know of where this should not work is MySQL which does not support subqueries.
Some databases have extensions to standard SQL. For example, I believe Microsoft SQL/Server will let you say --
delete from table1 from table1, table2 where table1.ID = table2.ID
(Yes, there are two "from"s in there; the first one's optional.)
As for table-driven updates, I would write --
update table1
set fieldnumber = (select fieldnumber from table2 where ID = table1.ID)
, fieldvalue = (select fieldvalue from table2 where ID =
table1.ID)
I say "would" because I've always done it the SQL/Server way --
update table1
set table1.fieldnumber = table2.fieldnumber
, table1.fieldvalue = table2.fieldvalue
from table1, table2
where table1.ID = table2.ID
This was first published in July 2001

Join the conversationComment
Share
Comments
Results
Contribute to the conversation