私はここで他のほとんどのソリューションを見てきましたが、どれも私にとってはうまくいかないようです。私は約100K行のテーブルを持っています。laravel 5.3 - 結果はどこからmysql
各行は、そのデバイスの一意のIDを含むiotデバイスのレコードです。デバイスIDは、100Kから10Kの行を持つことができます。
Reading::whereIn('device_id', $ids)->orderBy('created_at',
'DESC')->groupBy('device_id')->get()->
私は上記のクエリとして「DEVICE_ID」で一緒に私は必要なIDとグループにそれらを引き出すことが可能だが、その各IDの最後の最初の結果を選ぶとありません。
最も古いレコードではなく、各レコードの最新レコードを取得するにはどうすればよいですか?
私はlaravelコレクションとreverse()、first()、latest()を見てきました。私はまだそれを得ることはできません
すべてのアイデア?
UPDATE
私が思い付くことができた最高のは、それぞれの最新のレコードをつかむし、それ以下このクエリは、私はそれらをループその後、よ
SELECT t1.* FROM readings t1 WHERE t1.id = (SELECT t2.id FROM readings
t2 WHERE t2.device_id = t1.device_id ORDER BY t2.id DESC LIMIT 1)
をDEVICE_IDであります結果を表示し、ユーザーがアクセスできるレコードのみを取得します。
これはあまり意味がありませんが、現在は機能しています。
誰が今まで私は、これは動作するはずと信じて
助けようとしたすべての人に
ありがとう:あなたはおそらく、渡された – ATechGuy
「Grammar.phpラインでErrorException 58)(strtolowerは、パラメータ1は、オブジェクトが与えられた文字列であることを期待します」オブジェクトのインスタンス...コードを表示する – GabMic
どのコードeitan?私のコードは上記ですが、$ idsは配列 – ATechGuy