Итак, у меня есть две отдельные таблицы. В первой таблице есть несколько групп объявлений с идентификатором. Во второй таблице куча объявлений, у которых есть столбец, содержащий идентификатор ad_group для каждого объявления. Ad_group_id - это просто идентификатор группы объявлений из таблицы групп объявлений. Поэтому я пытаюсь выбрать все объявления, у которых ad_group_id равен 103, 104, 105, 107, 11717 и 120.
Итак, я попробовал следующий запрос.
SELECT * FROM ads WHERE ad_group_id LIKE '%103%' OR ad_group_id LIKE '%104%'
OR ad_group_id LIKE '%105%' OR ad_group_id LIKE '%107%' OR ad_group_id LIKE '%117%' OR ad_group_id LIKE '%118%' OR ad_group_id LIKE '%120%';
Так сработал предыдущий запрос? ДА
Был ли мой запрос эффективен? НЕТ!
Мне интересно, как я могу выполнить предыдущий запрос MySQL более эффективным способом.
EDIT:
AD GROUP - table 1
id name
100 Tony
100 David
103 James
104 Ann
105 Jon
150 Sara
AD - table 2
keyword ad_group_id
that 103
one 100
is 105
special 104
no 100
please 103
Так что я должен в итоге:
that 103
is 105
special 104
please 103
Надеюсь, что это имеет смысл.
РЕДАКТИРОВАТЬ 2:
Следующий код дает тот же результат и является более коротким, но я не могу себе этого позволить, если нужно выбрать больше значений.
SELECT * FROM ads WHERE ad_group_id IN (103,104,105,107,117,118,120);