Проблема с DELETE JOIN

0
DELETE FROM Books INNER JOIN (Classes, Class_Books) ON (Books.ISBN = Class_Books.ISBN AND Class_Books.Class_ID = Classes.Class_ID AND Classes.Term_ID = 63) WHERE Year = '""'

Дает ошибку: # 1064 - У вас есть ошибка в синтаксисе SQL;

Замена DELETE на SELECT работает нормально, хотя

Теги:
join
sql-delete

3 ответа

1
Лучший ответ

Попробуйте следующее, которое приведет к удалению записей в книгах с Classes.Term_ID = 63.

DELETE b FROM Books b
    INNER JOIN Class_Books cb ON b.ISBN = cb.ISBN
    INNER JOIN Classes c ON cb.Class_ID = c.Class_ID  
WHERE Year = '""' 
  AND c.Term_ID = 63
  • 0
    Этот запрос истекает по какой-то причине (замена DELETE на SELECT * не делает этого)
  • 0
    На самом деле похоже, что весь запрос истекает ... поэтому я собираюсь выяснить общую проблему, а затем ответить ..
1
DELETE FROM Books 
WHERE ISBN IN (Select Class_Books.ISBN from Class_Books, Classes
               WHERE Class_Books.Class_ID = Classes.Class_ID 
                 AND Classes.Term_ID = 63
              )
AND Year = '""'
  • 0
    Этот запрос по какой-то причине прерывается, даже если заменить DELETE на SELECT *, это не так.
  • 0
    @babonk, подзапрос также истекает?
Показать ещё 3 комментария
1

В SQL вы говорите

DELETE FROM

не

DELETE * FROM

хотя это

SELECT * FROM
  • 0
    спасибо исправил
  • 0
    под "это" я имею в виду вопрос .. ошибка все еще существует

Ещё вопросы

Сообщество Overcoder
Наверх
Меню