2011-08-26 44 views
0

因此,在我的工作,我不停的問解決在MySQL 5數據庫和IM卡運行一些SQL代碼,還林不知道這是否是這樣做的正確的地方,但有關於這個問題的一小杯啤酒賞金。那麼發送頂級投票的問題一些啤酒錢。有人可以幫我用這個SQL查詢嗎?

基本上語句需要執行以下操作:從 customers_basket刪除行,其中products.products_quantity < 1和下側(inventory_t_product_minimum_stock.minimum_quantity)= 'NLA'

這是當前語句:

DELETE FROM customers_basket 
WHERE EXISTS 
    (SELECT products_id 
     FROM inventory_t_product_minimum_stock 
     WHERE customers_basket.products_id = 
      inventory_t_product_minimum_stock.products_id    
     AND LOWER(inventory_t_product_minimum_stock.minimum_quantity) = 'nla') 

所以真的那麼需要改變的是添加了一些關於products_quantity < 1然而,這些信息來自不同的表。

編寫一個簡單的左連接3臺不會是困難的,我關心的卻是,當和連接三個大表用戶登錄對我們來說是一個相當大的問題,我想這個代碼被執行。我實際上是一個C開發人員來javascript編碼器有些dbs是我的專業領域之外的一點。會不會有一個SQL大師有一個很好的解決方案,不必改變我們的數據庫模式?

編輯*拼寫

+1

你測試你提到的'JOIN'方法?我不會認爲它表現不佳,特別是如果你有適當的索引。另外,如果您可以爲涉及的表提供完整的模式,它將會有所幫助。 –

回答

4

只要你的表是適當的索引,並且要加入對索引字段,您的過濾器的目標索引字段,查詢應該執行得相當好。

而且,你只刪除在客戶籃子表項或爲有< 1數量的所有產品的用戶登錄?

+1

「過早的優化是所有罪惡的根源」 –

相關問題