仅获取唯一记录

时间:2018-10-16 12:22:28

标签: laravel eloquent

我正在尝试建立只有一个用户的会话。用户拥有的应用程序反过来又有很多会话。

这是我的查询

$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 :(得分:0)

您可以使用havingRaw('count(online_counselling_id)', 1);功能。 我不确定这个确切的示例是否会起作用,但是请看一下havinghavingRaw函数。

答案 1 :(得分:0)

您只需要删除分组依据,并且需要添加不重复分组。

$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();

我认为这会对您有所帮助。