0
投稿を書くための最後の9人の著者のリストを取得し、投稿した最後の投稿の日付の順にリストするMySQLクエリがあります。未処理クエリをLaravelクエリビルダーに変換する
正常に動作していますが、私はLaravel Query Builderを使用して書き直したいと思います。ここでは、現時点でのクエリです:
$authors = DB::select("
SELECT
`a`.`id`,
`a`.`name`,
`a`.`avatar`,
`a`.`slug` AS `author_slug`,
`p`.`subheading`,
`p`.`title`,
`p`.`slug` AS `post_slug`,
`p`.`summary`,
`p`.`published_at`
FROM
`authors` AS `a`
JOIN
`posts` AS `p`
ON `p`.`id` =
(
SELECT `p2`.`id`
FROM `posts` AS `p2`
WHERE `p2`.`author_id` = `a`.`id`
ORDER BY `p2`.`published_at` DESC
LIMIT 1
)
WHERE
`a`.`online` = 1
ORDER BY
`published_at` DESC
LIMIT 9
");
は、私は、クエリビルダを使用しての基本を理解し、しかしJOIN
テーブルON
SELECT
に私を可能Laravelのドキュメントに何かがあるように表示されません。
Laravel Query Builderを使用してこのクエリを書く方法を提案してもらえますか、またはこのクエリを書き直してクエリビルダーで構造を簡単にする方法を提案できますか?
ようおかげで、@Komalを行うようにしてください。あなたの返信は私にこれを解決する正しい考えを与えました。あなたの答えには、いくつかの小さな間違いがあります。答えを正しくマークする前に最初に編集してもよろしいですか? – Joseph
えええええええええええええええええええええええええええええ:) – Komal
さて、やった。再度、感謝します! – Joseph