以下のクエリは、多くのジョインテーブルとDB :: rawクエリを使用しており、期待どおりに動作しています。私はテーブルにURLが格納されているフィールドである "着陸"をgroupByしたいと思います。 しかし、パラメータなしでURLをグループ化したいと思います。どうすればこれを達成できますか?Laravelでは、どのようにクエリでパラメータなしでURLをグループ化しますか
以下のクエリはSUBSTRING_INDEXを使用しようとしましたが、機能しませんでした。
$adverts = DB::table('adverts')
->select(DB::raw('count(*) as total'),DB::raw('(SELECT DATE_FORMAT(max(instances.date), \'%d-%m-%Y\') FROM instances WHERE instances.ad_uid = adverts.ad_uid ORDER BY id DESC limit 1) AS Last_seen_date,'
. '(SELECT instances.country FROM instances WHERE instances.ad_uid = adverts.ad_uid ORDER BY id DESC limit 1) AS country,'
. '(SELECT advertsstorage.filename FROM advertsstorage where uid_dir = adverts.ad_uid ORDER BY id ASC limit 1) AS filename,'
.'(SELECT IF(ext = \'jpeg\', CONCAT(fullpath, \'_1.\', ext), (CONCAT(fullpath,\'.\',ext))) as fullpath FROM advertsstorage where uid_dir = adverts.ad_uid ORDER BY id ASC limit 1)as fullpath, adverts.*'))
->join('domains','adverts.domain', '=' ,'domains.domain')
->join('advertiser_domains','domains.id', '=' ,'advertiser_domains.domain_id')
->join('advertisers','advertiser_domains.advertiser_id', '=' ,'advertisers.u_id')
->where('advertisers.u_id', '=',$advertiserID)
->orderBy('Last_seen_date', 'DESC')
->groupBy(DB::raw("SUBSTRING_INDEX(adverts.landing,'?',1)"))
->get();
+1。 Laravel groupByをパラメータで使用する方法を理解しましたか?私は今この同じ問題によってブロックされています。ありがとう! – Ryan