编写嵌套的SQL查询

时间:2015-01-08 11:49:53

标签: sql sql-server sql-server-2008-r2

我有2张桌子

表1

ID    Name
--------------------
 1    John Carter
 2    Jack Hammer
 3    John Adams
 4    John Doe
 5    Brian Adams

表2

ID     ID_FromTable1
-----------------------------
 1        2
 2        3
 3        1
 4        1
 5        1
 6        2
 7        3
 8        1
 9        1
10        5
11        4
12        5
13        4
两个表中的

ID是主键

  • ID_FromTable1是指向ID的{​​{1}}的外键。

现在我做这样的事情:

Table1

这会给我SELECT ID FROM Table1 WHERE Name like '%John%' ID13

现在使用这些4,我想在ID上写一个查询,删除Table2ID_FromTable11,{{3的所有条目1}}。

请帮助我编写一个单独的SQL查询,以获取名称为4的{​​{1}}中的所有ID,然后使用Table1来删除'John'中的条目{1}}。

我希望我已经明确了这个问题。如果您需要任何澄清,请告诉我。

2 个答案:

答案 0 :(得分:3)

您可以将IN与子查询一起使用:

DELETE FROM Table2 
WHERE ID_FromTable1 IN ( SELECT ID 
                         FROM Table1 
                         WHERE Name LIKE '%John%' )

答案 1 :(得分:1)

在MySQL中,您可以使用此连接

来完成此操作
delete table2
from table2
join table1 on table2.id_fromtable1 = table1.id
WHERE t1.Name like '%John%'