sql >> Database teknologi >  >> RDS >> Mysql

Laravel rækkefølge efter mange forhold

Det er vigtigt at forstå, hvordan Laravels ivrige lastning fungerer. Hvis vi ivrig indlæser dit eksempel, henter Laravel først alle tråde. Derefter henter den alle kommentarer og føjer dem til trådobjektet. Da der bruges separate forespørgsler, er det ikke muligt at bestille tråde efter kommentarer.

Du skal bruge en join i stedet. Bemærk, at jeg gætter på dine tabel-/kolonnenavne i dette eksempel.

$threads = Thread::leftJoin('comment', 'comment.thread_id', '=', 'thread.id')
    ->with('comments')
    ->orderBy('comment.created_at', 'desc')
    ->get();

Siden du tilmelder dig, skal du muligvis manuelt angive kolonner for at vælge dine tabellers kolonnenavne.

$threads = Thread::select('thread.*')->leftJoin('comment', 'comment.thread_id', '=', 'thread.id')
    ->with('comments')
    ->orderBy('comment.created_at', 'desc')
    ->get();


  1. C# - MySQL vs Microsoft SQL Server

  2. Pas på, hvad du holder øje med

  3. tomcat 6.0.24 Undtagelse:Kunne ikke indlæse com.mysql.jdbc.SQLError

  4. Hvordan løser jeg en mysql Thread Stack Overrun?