我正在尝试根据另一个记录从表中删除所有记录,例如我有一个名为pd_course_mstr
的表,其中包含以下字段
course_id
start_dt
然后我有另一个名为pd_eval_dtl
的表,其中包含以下字段
course_id
eval_question
目标是删除所有具有特定日期的eval问题。我能够使用SQL通过使用以下语句选择所有eval问题
SELECT *
FROM pd_eval_dtl AS eval JOIN pd_course_mstr AS course
ON eval.course_id = course.course_id
WHERE course.start_dt='02/17/2014'
所以我试着把它改成
DELETE
FROM pd_eval_dtl JOIN pd_course_mstr
ON pd_eval_dtl.course_id = pd_course_mstr.course_id
WHERE pd_course_mstr.start_dt='02/17/2014'
但它一直说JOIN
我不知道我做错了什么。
答案 0 :(得分:6)
语法是
DELETE FROM eval
FROM pd_eval_dtl AS eval
INNER JOIN pd_course_mstr AS course
ON eval.course_id = course.course_id
WHERE ( course.start_dt = '20140217' )
答案 1 :(得分:1)
试试这个。
DELETE ped
FROM pd_eval_dtl ped
INNER JOIN pd_course_mstr pcm ON ped.course_id = pcm.course_id
WHERE pcm.start_dt='20140217'
答案 2 :(得分:1)
DELETE FROM pd_eval_dtl
WHERE EXISTS
(SELECT 1
FROM pd_course_mstr
WHERE course_id = pd_eval_dtl.course_id
AND start_dt='02/17/2014')
答案 3 :(得分:0)
使用where in
:
delete pd_eval_dtl
where course_id in
( select course_id
from pd_course_mstr
where start_dt='02/17/2014'
)
答案 4 :(得分:0)
DELETE FROM SECONDTABLE WHERE COURSE_iD IN (SELECT COURSE_iD FROM FIRST TABLE WHERE START_dT IS > REQUIRED DATE)