Получайте только уникальные записи - PullRequest
0 голосов
/ 16 октября 2018

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

Это мой запрос

$oneTimeSessions = DB::table('online_counselling_applications')
          ->join('online_counselling_sessions', function ($join) {
              $join->on('online_counselling_applications.id', '=', 'online_counselling_sessions.online_counselling_id')
            })->groupBy('online_counselling_id')->distinct()->get();

В настоящее время я получаю все сеансы, и при наличии дубликата отображается только один.Если есть дубликат, я не хочу показывать ни одного.Есть идеи?

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Вам нужно только удалить группу по и добавить отдельное.

$oneTimeSessions = DB::table('online_counselling_applications')
          ->join('online_counselling_sessions', function ($join) {
              $join->on('online_counselling_applications.id', '=', 'online_counselling_sessions.online_counselling_id')
            })->distinct('online_counselling_id')->get();

Я думаю, это поможет вам.

0 голосов
/ 16 октября 2018

Вы можете использовать функцию havingRaw('count(online_counselling_id)', 1);.Я не уверен, что этот точный пример будет работать, но взгляните на функцию having или havingRaw.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...