Команда удаления SQL - PullRequest
       4

Команда удаления SQL

0 голосов
/ 01 апреля 2011

Я пытался удалить объединяющиеся таблицы с одинаковыми lbhc_lb_sku в таблице lif_bookhascategory и lb_sku в таблице lif_books.Я не могу удалить его.

Вот моя команда SQL:

DeleteCommand="DELETE FROM lif_books FROM lif_books CROSS JOIN lif_bookshascategory WHERE (lif_books.lb_sku = @lb_sku) AND (lif_bookhascategory.lbhc_lb_sku = @lb_sku)">

Возвращает:

Incorrect syntax near the keyword 'INNER'. 

Ответы [ 3 ]

2 голосов
/ 01 апреля 2011

Официально спецификация SQL не предусматривает использование соединения в запросе действия (вставка, обновление или удаление).В этом случае проще использовать более универсальный формат:

Delete lif_books
Where lb_sku = @lb_sku
    And Exists  (
                Select 1
                From lif_bookhascategory
                Where lbhc_lb_sku = @lb_sku
                )
1 голос
/ 01 апреля 2011

Это должно работать:

DELETE lif_bookshascategory, lif_books
FROM lif_bookshascategory
INNER JOIN lif_books 
  ON lif_bookshascategory.lbhc_lb_sku = lif_books.lb_sku

Вот ссылка

1 голос
/ 01 апреля 2011

Я только что проверил это на моей собственной базе данных, и она работает.

DELETE lif_bookshascategory, lif_books
FROM lif_bookshascategory
INNER JOIN lif_books
WHERE lbhc_lb_sku = lb_sku
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...