2011-04-01 120 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 
       )