@Pettttttro

Как оптимизировать запрос в mysql?

Здравствуйте! Помогите оптимизировать запрос.

У меня есть массив company_id и сейчас к каждому делается запрос
SELECT count(*) AS count FROM table_one
WHERE table_one.id IN (SELECT id FROM table_two WHERE campaign_id = $company_id )


И получаю инфу только к одному company_id.
Можно ли как-то сделать одним запросом что бы я сразу проверил все company_id.

Сейчас от каждой выборки я получаю примерно это
----count----
12

Я же хочу это
----company_id----count----
---------1-----------12----------
---------2-----------45----------
---------9-----------5----------

----------------------------------------------------------------
ИЛИ ПО ДРУГОМУ ВОПРОС
Есть список company.id и спомощу каждого нужно сделать запрос (не важно какой) в другую таблицу. Должно получиться :
company.id => resltQuery
------1------------результат какогото запроса
------2------------результат какогото запроса
------5------------результат какогото запроса
------8------------результат какогото запроса

Спасибо.
  • Вопрос задан
  • 196 просмотров
Решения вопроса 1
@bizon2000
Java-программист
SELECT t1.id AS company_id,
       (SELECT COUNT(*)
            FROM table_two t2
            WHERE t2.campaign_id = t1.company_id
       ) AS count
      FROM table_one t1;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
WHERE campaign_id IN(implode(",",  $company_array))

$company_array - массив company_id
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы