MS Access SQL не работает по желанию

У меня есть запрос, который выглядит следующим образом.

SELECT * FROM <database1> WHERE (Condition1) AND (Condition2 or Condition3)

Мой желаемый результат должен быть строками, удовлетворяющими условию 1 и строкам, удовлетворяющим условию 2 или условию3.

Но SQL дает мне строки, которые просто удовлетворяют условию1. Кажется, что оператор «OR» между условием2 и condition3 что-то делает.

Принято мнение экспертов. Заранее спасибо за помощь.

В своем комментарии вы ставите:

 SELECT * FROM <Database> WHERE ( ( [Title] Like '*Term1*' OR [Title] = '' OR [Title] = '' OR [Title] = '' OR [Title] = '' OR [Title] = '' OR [Title] = '' OR [Title] = '' OR [Title] = '' OR [Title] = '' ) and ( ( [Title] LIKE '*Term1*' OR '*Term3*' OR '*Indonesia*' or [Country] IN ('*India*','*Indonesia*') ) ) ) 

Выстроившись так, вы можете увидеть структуру немного легче.

Самая большая вещь, которая, вероятно, выбрасывает вас, – это сочетание операторов LIKE , OR и IN во второй части.

LIKE – единственный оператор, который может работать с подстановочными знаками, OR и IN не могут.

Вероятно, вы имели бы что-то вроде:

  ( [Title] LIKE '*Term1*' OR [Title] LIKE '*Term3*' OR [Title] LIKE '*Indonesia*' OR [Country] LIKE '*India*' OR [Country] LIKE '*Indonesia*' ) 

вместо.

Я не уверен, но попробуйте это вместо этого:

 SELECT * FROM <database1> WHERE ((Condition1) AND (Condition2 or Condition3)) 

надеюсь, что это решит вашу проблему 🙂

Подстановочные знаки не используются в IN :

 [Country] IN ('*India*','*Indonesia*') 

не означает, что вы думаете, что это означает