私はこれに参加しています:
_Return DB::table('volunteer')
->join('volunteer_volunteer_category', 'volunteer_volunteer_category.volunteer_id', '=', 'volunteer.id')
->select(array('*','volunteer.id AS link_id'))
->where('is_published', '=', 1)
_
しかし、当然のことながら、重複したレコードが返されるため、distinct()
を使用しようとします。
_Return DB::table('volunteer')
->join('volunteer_volunteer_category', 'volunteer_volunteer_category.volunteer_id', '=', 'volunteer.id')
->select(array('*','volunteer.id AS link_id'))
->distinct()
->where('is_published', '=', 1)
_
しかし、私はdistinct()
特定の単一フィールドでを使用したいと思います。これは、SQLで簡単に実行できます。 distinct()
はパラメータを取らないようです。つまり、distinct('volunteer.id')
とは言えません。
重複レコードを削除するにはどうしたらいいですか?これは私にとってもう一つの額スラッパーだと思います。
私のプロジェクトでは、distinct()
とgroupby()
も試しましたが、どちらも機能しました:
_//Distinct version.
Company_Customer_Product::where('Company_id', '=', $companyid)->distinct()->get(array('Customer_id'));
//Goup by version.
Company_Customer_Product::where('Company_id', '=', $companyid)->groupby('Customer_id')->get(array('Customer_id'));
_
これによれば、distinct()
はあなたのケースでも機能するはずです。get()
と一緒に使用するだけです:
_Return DB::table('volunteer')
->join('volunteer_volunteer_category', 'volunteer_volunteer_category.volunteer_id', '=', 'volunteer.id')
->select(array('*','volunteer.id AS link_id'))
->distinct()
->where('is_published', '=', 1)
->get(array('volunteer.id'));
_
それ以外の場合は、distinct()
を使用するときにgroupby()
は必要ないため、次のように使用できます。
_Return DB::table('volunteer')
->join('volunteer_volunteer_category', 'volunteer_volunteer_category.volunteer_id', '=', 'volunteer.id')
->select(array('*','volunteer.id AS link_id'))
->group_by('volunteer.id')
->where('is_published', '=', 1)
->get(array('volunteer.id'));
_