我无法弄清楚这个查询有什么问题。我希望特定卖家的所有产品ID都不再有效。要有效,"产品必须是活跃的=' Y' AND expireDate> = NOW()AND statusid = 20(其他几个无效)。
这是查询
SELECT DISTINCT(productID) FROM products
WHERE sellerID IN
(/*list of sellerIDs*/)
AND (active != 'Y' OR statusid != 20 OR expireDate < NOW())
一些示例数据(全部来自上面子查询中的sellerID)
productID | active | statusid | expireDate
1 | Y | 20 | 2015-08-01
2 | N | 20 | 2015-08-01
3 | Y | 0 | 2015-08-01
4 | Y | 20 | 2015-07-01
我希望得到2,3和4。
答案 0 :(得分:0)
所以在问题陈述中它说我们需要在active,statusid和expireDate之间使用AND。请使用以下查询:
SELECT DISTINCT(productID) FROM products
WHERE sellerID IN
(/*list of sellerIDs*/)
AND active != 'Y' AND statusid != 20 AND expireDate < NOW()
答案 1 :(得分:0)
在这里为我工作。
SELECT DISTINCT(productID) FROM products
WHERE sellerID IN (/*list of sellerIDs*/)
AND active != 'Y' OR statusid != 20 OR DATE(expireDate) < NOW();
OR
SELECT DISTINCT(productID) FROM products
WHERE sellerID IN (/*list of sellerIDs*/)
AND active != 'Y' AND statusid != 20 OR DATE(expireDate) < DATE(NOW());
OR
SELECT DISTINCT(productID) FROM products
WHERE sellerID IN (/*list of sellerIDs*/)
AND active != 'Y' OR (statusid != 20 OR DATE(expireDate) < CURDATE());