Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zamówienie Laravel według relacji ma wiele

Ważne jest, aby zrozumieć, jak działa gorliwe ładowanie Laravela. Jeśli chętnie załadujemy Twój przykład, Laravel najpierw pobierze wszystkie wątki. Następnie pobiera wszystkie komentarze i dodaje je do obiektu wątków. Ponieważ używane są oddzielne zapytania, nie jest możliwe uporządkowanie wątków według komentarzy.

Zamiast tego musisz użyć sprzężenia. Zwróć uwagę, że w tym przykładzie zgaduję nazwy tabel/kolumn.

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

Ponieważ dołączasz, może być konieczne ręczne określenie kolumn, aby wybrać nazwy kolumn w tabelach.

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jakiego typu danych kolumny powinienem użyć do przechowywania dużych ilości tekstu lub html

  2. MySQL - Złożoność:SELECT COUNT(*) FROM MyTable;

  3. Kopiowanie baz danych mysql z jednego komputera na drugi

  4. Jak mogę przekonwertować datę i godzinę na datę, obcinając godziny, pozostawiając mi daty?

  5. wywołanie funkcji członkowskiej execute() na obiekcie niebędącym obiektem