2017-06-15 44 views
1

我有麻煩,SQL刪除類別,如果類別爲空

我有一個類別的產品。我的問題是,如果類別爲空且沒有產品,我如何從數據庫中刪除類別。

我的代碼

"DELETE 
FROM category AS a 
INNER JOIN products AS b 
ON a.cat_id = b.cat_id 
WHERE a.user_id = ? 
AND a.cat_id = ? LIMIT 1"; 

如果我執行這個代碼我得到一個錯誤:致命錯誤:未捕獲的異常「PDOException」有消息「SQLSTATE [42000]:語法錯誤或訪問衝突:1064您有一個錯誤在你的SQL語法中;

回答

0
DELETE FROM category AS a 
Where a.cat_id = ? 
And not exists(
Select 1 
From products p 
Where p.cat_id = a.cat_id 
); 

此查詢我的綁定變量和過濾器倒是貓匹配拿出那些有相應產品的人。

0

我會用not exists運營商去尋找類別[不]在products表:

DELETE 
FROM category c 
WHERE NOT EXISTS (SELECT * 
        FROM products p 
        WHERE c.cat_id = p.cat_id);