Laravel красноречивый псевдоним подзапроса - PullRequest
0 голосов
/ 12 февраля 2019

Как это сделать в Laravel 5.1?

SELECT *
FROM
(
    SELECT subscriber_id, COUNT(*) as count
        FROM mailing_group_subscriber
        WHERE mailing_group_id IN ('99', '15498855416270870')
    GROUP BY subscriber_id
) table_count
WHERE count = 2;

Спасибо!

1 Ответ

0 голосов
/ 12 февраля 2019

Ваш запрос не использует наличие, поэтому он будет считать все и выберет число 2. Таким образом, получить все значения и выбрать количество 2 через коллекцию:

DB::table('mailing_group_subscriber')
  ->select(DB::raw('COUNT(*) as count'))
  ->select('subscriber_id')
  ->groupBy('subscriber_id')
  ->whereIn('mailing_group_id', ['99', '15498855416270870'])
  ->pluck('count', 'subscriber_id')
  ->where('count', 2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...