以下是我的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服务器版本对应的手册,以便在#CHC.VendorProductRateID NOT IN附近使用正确的语法 ( SELECT Data.VendorProductRa'在第1行
答案 0 :(得分:0)
您可以在此处查看删除查询语法
https://www.w3schools.com/sql/sql_delete.asp
Regex.Replace(value, @"(\d)(\p{L})", "$1 $2"))
查询不会出现别名,如下所示,
DELETE
这可能会有所帮助
<强>更新强>
没有别名,你可以给,
DELETE FROM `TMP_VendorProductRate` WHERE...
试试这个......
另请告诉我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)
)
这意味着什么?