0
我有以下MySQL查詢,它提取最後9位作者的列表以撰寫帖子,並按他們寫的最後一篇文章的日期順序列出它們。將原始查詢轉換爲Laravel查詢生成器
它工作正常,但我想用Laravel查詢生成器重新編寫它。這裏是目前查詢:
$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
");
我瞭解使用查詢生成器的基礎知識,但似乎沒有要在Laravel文檔任何允許我JOIN
表ON
一個SELECT
。
任何人都可以提出一種方法,我可以使用Laravel查詢構建器編寫此查詢,或者可能提出一種方法,我可以重寫此查詢以使查詢構建器更容易構建?
謝謝,@Komal。你的回覆給了我解決這個問題的正確想法。雖然你的答案有一些小錯誤。您是否介意在我將答案標記爲正確之前先編輯它們? – Joseph
ya..sure ..這是我的榮幸..並感謝:) – Komal
好的,完成了。再次感謝! – Joseph