2017-08-05 47 views
0

我有這個SQL查詢,一直工作得很好。我想要有類似的東西,當中的DESCR列在IM_ITEM開始時是清除而不是ITEM_VEND_NO = 'GAMES WORK'DELETE FROM表WHERE條件在其他表中滿足

DELETE `PRC_FIX` FROM `PRC_FIX` 
INNER JOIN `IM_ITEM` ON `IM_ITEM`.`ITEM_NO` = `PRC_FIX`.`ITEM_NO` 
        AND `IM_ITEM`.`ITEM_VEND_NO` = 'GAMES WORK' 

感謝您的幫助。

編輯:這被標記爲可能的重複。我不知道看着建議的重複會對我有所幫助,因爲我不知道如何在涉及2個表的這種情況下實現它,但是我願意承認這可能是我的錯,因爲我是新的到SQL。

+1

'和IM_ITEM.DESCR LIKE '%清關'' – Barmar

+0

BTW,條件是不涉及的兩個表通常應該在'WHERE'子句中,而不是'ON'(一個例外是外連接)。 – Barmar

+0

感謝提示@Barmar。我對SQL仍然陌生並被賦予了這個查詢來使用。 – enano2054

回答

2

您可以使用

DELETE PRC_FIX 
    FROM PRC_FIX 
INNER JOIN IM_ITEM 
    ON IM_ITEM.ITEM_NO = PRC_FIX.ITEM_NO 
WHERE UPPER(IM_ITEM.DESCR) LIKE 'CLEARANCE%'; 
2

您需要使用通配符%。

爲了與不同字符串匹配,以「Clearance」開頭,您需要使用「Clearance%」。

看看這裏:SQL like search string starts with

你固定碼:

DELETE `PRC_FIX` FROM `PRC_FIX` 
    INNER JOIN `IM_ITEM` ON `IM_ITEM`.`ITEM_NO` = `PRC_FIX`.`ITEM_NO` 
         AND IM_ITEM.DESCR LIKE 'Clearance%' 
2
DETELE FROM PRC_FIX WHERE ITEM_NO IN (SELECT ITEM_NO FROM IM_ITEM WHERE ITEM_VEND_NO` = 'GAMES WORK') 
相關問題