Okay, nach stundenlanger Recherche und immer noch mit DB :: select muss ich diese Frage stellen. Weil ich gerade dabei bin, meinen Computer wegzuwerfen;).
Ich möchte die letzte Eingabe eines Benutzers erhalten (basierend auf dem Zeitstempel). Ich kann das mit dem rohen SQL machen
SELECT c.*, p.*
FROM users c INNER JOIN
(
SELECT user_id,
MAX(created_at) MaxDate
FROM `catch-text`
GROUP BY user_id
) MaxDates ON c.id = MaxDates.user_id INNER JOIN
`catch-text` p ON MaxDates.user_id = p.user_id
AND MaxDates.MaxDate = p.created_at
Ich habe diese Abfrage von einem anderen Beitrag hier auf stackoverflow erhalten.
Ich habe alles versucht, um dies mit dem fließenden Abfrage-Builder in Laravel zu tun, jedoch ohne Erfolg.
Ich weiß, dass das Handbuch besagt, dass Sie dies tun können:
DB::table('users')
->join('contacts', function($join)
{
$join->on('users.id', '=', 'contacts.user_id')->orOn(...);
})
->get();
Aber das hilft nicht viel, weil ich nicht sehe, wie ich dort eine Unterabfrage verwenden könnte? Wer kann meinen Tag erhellen?
selectRaw
Anweisung einfügen ! Hatten Sie Glück, ein fließendes Abfrageobjekt anstelle einer Abfragezeichenfolge an die Abfrage zu übergeben?