2017-10-10 49 views
-2

我有一個SELECT查詢:Mysql的轉換SELECT查詢,刪除查詢

SELECT Data.VendorProductRateID  
FROM 
(SELECT MIN(VendorProductRateID) VendorProductRateID 
FROM TMP_VendorProductRate 
WHERE VendorProductID = 4 
    AND VendorProductRateTxnInfoID = 89 
GROUP BY DialCode,StartTime) Data, 
TMP_VendorProductRate TMP_VendorProductRate 
WHERE (TMP_VendorProductRate.VendorProductRateID = Data.VendorProductRateID); 

結果:

VendorProductRateID 
123 
124 
125 

我的表有50條記錄所以現在我想刪除所有記錄不大於3的ID。

我有試過下面的查詢,但沒有得到我的回答:

DELETE FROM `TMP_VendorProductRate` AS CHC WHERE CHC.VendorProductRateID NOT IN 
(
    SELECT Data.VendorProductRateID 
    FROM 
     (SELECT MIN(VPR.VendorProductRateID) VendorProductRateID 
      FROM TMP_VendorProductRate VPR 
      WHERE VPR.VendorProductID = 4 
       AND VPR.VendorProductRateTxnInfoID = 90 
      GROUP BY VPR.DialCode,VPR.StartTime 
     ) 
    Data, 
    TMP_VendorProductRate TMP_VendorProductRate 
    WHERE (TMP_VendorProductRate.VendorProductRateID = Data.VendorProductRateID) 
) 

錯誤:#1064 - 你在你的SQL語法錯誤;檢查對應於你的MySQL服務器版本使用附近的「AS CHC WHERE CHC.VendorProductRateID NOT IN ( SELECT Data.VendorProductRa」在行1

請幫我正確的語法手冊。

+0

任何錯誤到來或什麼? – KMS

+0

DELETE查詢中有錯誤。 –

+0

也分享那個錯誤.. – KMS

回答

0

喜看到這裏刪除查詢語法,

https://www.w3schools.com/sql/sql_delete.asp

別名不會來了DELETE查詢,更改如下圖所示,

DELETE FROM `TMP_VendorProductRate` WHERE... 

可能,這將有助於

UPDATE

沒有別名,你可以給,

DELETE FROM `TMP_VendorProductRate` WHERE VendorProductRateID NOT IN 
(
    SELECT Data.VendorProductRateID 
    FROM 
     (SELECT MIN(VPR.VendorProductRateID) VendorProductRateID 
      FROM TMP_VendorProductRate VPR 
      WHERE VPR.VendorProductID = 4 
       AND VPR.VendorProductRateTxnInfoID = 90 
      GROUP BY VPR.DialCode,VPR.StartTime 
     ) 
    Data 

    WHERE (TMP_VendorProductRate.VendorProductRateID = Data.VendorProductRateID) 
) 

嘗試......

也請告訴我TMP_VendorProductRate TMP_VendorProductRate這意味着什麼?

+0

但我需要刪除基於NOT IN條件意味着使用子查詢,也與相同的表。 –

+0

這就是沒有pbm,你可以嘗試沒有別名的@ SanjayChaudhari – KMS

+0

它會顯示錯誤:#1093 - 你不能指定目標表'TMP_VendorProductRate'在FROM子句更新 –