SQL добавить, где предложение для запроса - PullRequest
0 голосов
/ 03 мая 2018

У меня есть SQL-запрос, который объединяет две таблицы и возвращает результат, который пока работает хорошо. Это выглядит так:

Select * 
From program_recipes ptr 
Left Join recipes r On ptr.recipe_id = r.id 
Where ptr.program_type_id In (2) 
  And r.available = 1

Теперь я хочу добавить предложения where, чей заголовок содержит слово. Я пробовал это до сих пор, но я получил синтаксическую ошибку:

Select * 
From program_recipes ptr 
Left Join recipes r On ptr.recipe_id = r.id 
Where ptr.program_type_id In (2) 
  And r.available = 1 
   Or Where r.title LIKE '%word%'
   Or Where r.title LIKE '%word%'

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Не повторяйте WHERE, нужно только один раз. И, пожалуйста, проверьте приоритет между логическими операторами AND и OR, чтобы соответствовать вашим потребностям (добавьте скобки, если необходимо).

Select 
    * 
From 
    program_recipes ptr 
    Left Join recipes r On ptr.recipe_id = r.id 
Where 
    r.available = 1 AND
    (
        ptr.program_type_id In (2) OR
        r.title LIKE '%word%'
    )
0 голосов
/ 03 мая 2018

Удалить лишние команды и add ()

Select * 
From program_recipes ptr 
Left Join recipes r On ptr.recipe_id = r.id 
Where ptr.program_type_id In (2) 
  And (r.available = 1 
   Or   r.title LIKE '%word%'
   Or   r.title LIKE '%word%')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...