嵌套查询与删除SQL语句
问题描述:
我不知道怎么做,我需要解决它:嵌套查询与删除SQL语句
我有一个select语句:
SELECT
sum_lines.id,
sum_lines.line_id,
sum_lines.summary_id,
sum_lines.text_content,
sum_tbl.user_id
FROM
sum_lines
JOIN
sum_tbl
ON
sum_lines.summary_id = sum_tbl.id
WHERE
sum_tbl.user_id = 1
我怎么能删除,这种说法与显示一切删除语句?
答
如果你想从两个表中删除,你需要两个删除:
delete sum_lines
from sum_lines
join sum_tbl on sum_lines.summary_id = sum_tbl.id where sum_tbl.user_id = 1
delete from sum_tbl
where sum_tbl.user_id = 1
只要确保做一个备份,你删除的东西了。它可以很容易地做事情是这样的:
select *
into sum_lines_backup
from sum_lines
select *
into sum_tbl_backup
from sum_tbl
答
试试这个:
delete sum_lines from sum_lines as a
join sum_tbl as b on b.id = a.id
where b.user_id = 1
确保列name sum_lines[id]
数据必须与sum_tbl[id]
匹配,否则它不会工作。也许sum_lines.summary_id = sum_tbl.id
与数据库中的数据不匹配。
古老的问题,与一个古老的[答案... http://*.com/questions/439750/t-sql-selecting-rows-to-delete-via-joins/439768#439768] (http://*.com/questions/439750/t-sql-selecting-rows-to-delete-via-joins/439768#439768) – 2013-05-08 21:23:49