Xóa bài viết
Bạn có chắc chắn muốn xóa bài viết này không ?
Xóa bình luận
Bạn có chắc chắn muốn xóa bình luận này không ?
Sắp xếp bài viết theo comments gần nhất hoặc thời gian viết bài trong SQL và Laravel
Sắp xếp bài viết giống như cách sắp xếp trong các diễn đàn
Cấu trúc các bảng
Bảng posts
$table->increments('id');
$table->string('title');
$table->text('content');
$table->timestamps();
Bảng post_comment
:
$table->increments('id');
$table->integer('post_id')->unsigned();
$table->foreign('post_id')->references('id')->on('posts')->onDelete('cascade');
$table->text('content');
$table->timestamps();
Khi đó ta có quan hệ giữa bảng posts
và post_comments
là One to Many.
Sắp xếp trong SQL:
SELECT *
FROM posts AS p
LEFT JOIN post_comments AS c on c.post_id = p.id
GROUP BY p.id
ORDER BY COALESCE(GREATEST(p.created_at, MAX(c.created_at)), p.created_at) DESC
Sắp xếp trong Laravel
DB::table('posts')
->leftJoin('post_comments', 'post_comments.post_id', '=', 'posts.id')
->groupBy('posts.id')
->orderByRaw('COALESCE(GREATEST(posts.created_at, MAX(post_comments.created_at)), posts.created_at) DESC')
->select('posts.*')
ThanhMinh 31-07-2017
Bình luận

{{ comment.user.name }}
Bỏ hay
Hay

Cùng một tác giả

41
25
1. Các thư viện cần dùng Thư viện (Link) để xử lí file Zip. Thư viện (Link) để xử lí file Rar. Thư viện (Link), thư viện rarfile bắt buộc đi kèm v...

30
3
V8 hay còn gọi là Chrome V8, là một Javascript engine được phát triển bởi Chromium Project, mục đích ban đầu là dành cho Google Chrome nói riêng và...

8
2
Mỗi năm thì lại có một bản ECMAScript được thêm vào, cùng với đó là thêm kha khá tính năng mới, bài viết này sẽ kể đến một vài tính năng nhỏ nhưng ...
Bài viết liên quan

0
5
fCC: Technical Documentation Page note So I have finished the HTML part of this exercise and I want to come here to lament about the lengthy HTML ...

4
2
Bash script to fast serve Laravel project Lười gõ dòng lệnh quá nên tạo ra cái script để gõ nhanh :D laravelstart.sh /bin/bash if z "$1" ] ...