2011-04-01 128 views
0

我試圖刪除表lif_book中的表lif_bookhascategory和lb_sku中具有相同lbhc_lb_sku的連接表。我無法刪除它。SQL刪除命令

這裏是我的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'. 
+0

您可以提供有關要執行的操作的更多詳細信息嗎?謝謝。 – RollingBoy 2011-04-01 03:10:40

+0

什麼是錯誤? – richo 2011-04-01 03:11:23

+0

我試圖刪除表lif_bookhascategory中的相同lbhc_lb_sku和表lif_books中的lb_sku .. – 2011-04-01 03:15:24

回答

1

我只是測試這對我自己的數據庫和它的作品。

DELETE lif_bookshascategory, lif_books 
FROM lif_bookshascategory 
INNER JOIN lif_books 
WHERE lbhc_lb_sku = lb_sku 
+0

我有兩個表lif_bookhascategoy.lbhc_lb_sku和表lif_book.lb_sku – 2011-04-01 03:23:19

1

這應該工作:

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

Here's the reference

+0

它不工作:(( – 2011-04-01 03:27:34

+0

@SilverFang:出現任何錯誤? – RollingBoy 2011-04-01 03:30:00

+0

yes,關鍵字'INNER'附近的語法錯誤 – 2011-04-01 03:39:54

2

據官方統計,SQL規範不提供使用在動作查詢加入(插入,更新或刪除)。在這種情況下,使用更通用的格式會更簡單:

Delete lif_books 
Where lb_sku = @lb_sku 
    And Exists (
       Select 1 
       From lif_bookhascategory 
       Where lbhc_lb_sku = @lb_sku 
       )