AND运算符在SQL中提供错误的输出

时间:2016-07-21 13:05:54

标签: mysql sql

我正在解雇此查询

SELECT *
FROM Orders WHERE (CustomerID <> 51) AND (ShipperID <> 3);

并且没有显示来自51的客户发货

为什么吗 是他们在sql中的任何不同的AND视图

那么,如果我想要排除customerid为51且出货单ID为3但显示customerid为51且出货单不包括3的记录呢?

3 个答案:

答案 0 :(得分:2)

正如您所声明的它没有显示带有不同出货单的51的客户 我想你更愿意说

$('.rp_wcdpd_pricing_table_variation').first().show()
  

那么如果我想排除带有51和100的customerid的记录呢?   发货人ID为3,但显示customerid为51,发货人不包括3?

然后将您的条件改为

SELECT * FROM Orders WHERE CustomerID = 51

答案 1 :(得分:1)

我想你想要OR

SELECT o.*
FROM Orders o
WHERE (CustomerID <> 51) OR (ShipperID <> 3);

对于AND,它将不返回客户51的行。无,无论托运人。

答案 2 :(得分:1)

当你说“而且它没有显示51的客户”时,我可能会误解你,你想要返回51的没有shipperID为3的客户ID吗?如果是这种情况,您的查询将返回不等于51的customerid和不等于3的发货人ID,因此它不会返回它。我会这样做

SELECT *
FROM orders
WHERE customerID = 51 AND shipperid <> 3;