SQL查询未显示具有多个AND和OR子句的所需结果

hyd*_*d00 -2 mysql sql

我的以下查询未显示所需结果.我不明白我在哪里使用括号错误

查询:

SELECT `orders`.*, `users`.`fullname`, `users`.`phone`
FROM `orders`
JOIN `users` ON `orders`.`userId` = `users`.`id`
WHERE `orders`.`payment_verified_status` = '1'
AND (`orders`.`restId` = 132 OR `orders`.`restId` = 133 OR `orders`.`restId` = 134)
AND (`rest_brId` != 156 OR `rest_brId` != 188 OR `rest_brId` != 157 OR `rest_brId` != 691 OR `rest_brId` != 158)
Run Code Online (Sandbox Code Playgroud)

结果即将到来: 在此输入图像描述

但是这些行不应该来,因为我在查询中提到过 rest_brId != 156

请帮忙.谢谢!

Gor*_*off 6

用途in:

SELECT o.*, u.`fullname`, u.`phone`
FROM `orders` o JOIN
     `users` u
     ON o.`userId` = u.`id`
WHERE o.`payment_verified_status` = 1 AND
      o.`restId` IN (132, 133, 134) AND
      ?.`rest_brId` NOT IN (156, 188, 157, 691, 158)
Run Code Online (Sandbox Code Playgroud)

请注意?.这是为了talbe别名rest_brID.

你的逻辑问题是OR不等于,而不是括号.逻辑的那部分总是评估为真,因为你实际上想要AND而不是OR逻辑的那部分.