我的table1包含列:
def_id, def_name, username etc
我有另一个表table2,它有一些关联:
assoc_id,parent_id,child_id
parent_id,child_id实际上是来自Table1的def_id。它们根据GUI中的parent_child关系用户操作插入到Table2中。
现在我想从Table1中为特定用户名选择所有def_id,然后使用该输入删除所有记录,如果这些def_ids是Table2中parent_id或child_id的一部分。
我如何在SQL中执行此操作?我正在使用Sybase数据库。
任何帮助将不胜感激
答案 0 :(得分:2)
Delete Table2
Where parent_id In
(Select def_id from table1
Where username = @username) Or
child_id In
(Select def_id from table1
Where username = @username)
或者
Delete t2
From table2 t2
Where Exists
(Select * From Table1
Where def_id In
(t2.parent_Id, t2.child_Id))
答案 1 :(得分:0)
一种简单的方法是在where子句中添加子查询。
DELETE ab
FROM AuthorArticle AS ab
WHERE ab.AuthID=(SELECT AuthID FROM Authors WHERE AuthorLastName='Yin')
从未使用过Sybase,但这是基本的SQL,应该可以使用。
答案 2 :(得分:0)
尝试:
DELETE table2
FROM table2
INNER JOIN table1 ON table1.def_id IN (table2.parent_id, table2.child_id)