从连接表中删除

Rob*_*osh 1 sql sql-server

我试图根据另一个日期从表中删除所有记录,例如我有一个名为pd_course_mstr具有以下字段的表

course_id
start_dt
Run Code Online (Sandbox Code Playgroud)

然后我有一个名为的表pd_eval_dtl,其中包含以下字段

course_id
eval_question
Run Code Online (Sandbox Code Playgroud)

目标是删除具有特定日期的所有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'
Run Code Online (Sandbox Code Playgroud)

所以我试着改成它

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'
Run Code Online (Sandbox Code Playgroud)

但它一直说我附近有语法错误 JOIN

我不知道我做错了什么.

Mar*_*ith 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' ) 
Run Code Online (Sandbox Code Playgroud)

  • 应该是+2真的,1用于首先正确回答,1用于使用文化不变日期格式用于字符串文字日期. (4认同)
  • @GarethD你可以借我的. (2认同)