我想在Laravel中編寫一個查詢來檢索特定用戶查看的所有帖子。 user_id
和post_id
保存在名爲WatchHistory
的表中。如何使用Eloquent在Laravel中編寫以下SQL查詢?
SELECT *
FROM Post
WHERE post_id = (
SELECT post_id
FROM WatchHistory
WHERE user_id = $user_id
);
我試過如下:
$posts = Post::whereIn('post_id', function($query){
$query->select('post_id')
->from(with(new WatchHistory)->getTable())
->where('user_id',$user_id);
})->get();
但它給我的變量USER_ID沒有定義的錯誤。
此查詢是否正確? WHERE user_id = user_id是什麼? –