Выбираете несколько товаров из одной категории? - PullRequest
0 голосов
/ 24 июня 2018

Попытка утверждения 1:

Казалось, что все игнорируют и получают продукты из любой точки мира, независимо от страны

SELECT *
FROM products
WHERE `country` = 'America' AND
      product = 'Product 1' AND
      product = 'Product 2' AND
      completed = 'complete'

Попытка утверждения 2:

Результатом этого было то, что возвращается 0 результатов, даже если результаты есть гипотетически.

SELECT *
FROM products
WHERE `country` = 'America' AND
      product = 'Product 1' OR
      product = 'Product 2' AND
      completed = 'complete'

1 Ответ

0 голосов
/ 24 июня 2018

Ваш первый запрос является логически неправильным из-за product = product 1 AND product = product 2, где предложение фильтрует строки одну за другой, поэтому одна строка не может содержать оба значения в столбце продукта.


Ваш второй запрос имеет проблему, которую вы ввели, и критерии OR, поэтому он игнорирует фильтр страны, если в другой стране есть продукт 2 со статусом, завершенным, чтобы исправить ваш запрос, необходимо сгруппировать критерии OR, используя скобки (condition 1 or condition 2) and some other condition
SELECT *
FROM products
WHERE `country` = 'America'
      AND (product = 'Product 1' OR product = 'Product 2')
      AND completed = 'complete'

Или вы можете использовать предложение IN для упрощения ваших критериев

SELECT *
FROM products
WHERE `country` = 'America'
      AND product IN('Product 1','Product 2')
      AND completed = 'complete'
...