gpt4 book ai didi

mysql - 使用 Laravel 检索所有记录以及按外键排序的关系的 SQL 查询

转载 作者:行者123 更新时间:2023-11-29 16:04:00 25 4
gpt4 key购买 nike

我有两个名为“genre”和“preferred_genre”的表,“preferred_genre”表中有一个外键为“genre_id”,它还有一个“user_id”列,我想检索所有流派,但首先那些在“preferred_genre”表中具有外键关系并且是登录用户首选的流派。

genre -> id,genre_name

preferred_genre ->id, genre_id, user_id

# genre table #
===============
id | genre_name
---------------
1 | action
2 | comedy
3 | horror
4 | drama

# preferred_genre table #
=========================
id | genre_id | user_id
------------------------
1 | 2 | 5
2 | 4 | 5
3 | 1 | 8
4 | 4 | 8

让登录的用户id为5

$q = Genre::select('genres.*');
$q->leftJoin('preferred_genres', function($join)
{
$join->on('genres.id', '=', 'preferred_genres.genre_id');
$join->where('user_id','=',Auth::id());
});
$genre_list = $q->orderBy('preferred_genres.created_at', 'desc')->get();

我想首先获取除 user_id 5 首选的类型之外的所有类型,然后是所有其他类型,如下所示

id  | genre_name
----------------
2 | comedy
4 | drama
1 | action
3 | horror

最佳答案

$q->orderByRaw("FIELD(preferred_genres.user_id, 5) ASC");

关于mysql - 使用 Laravel 检索所有记录以及按外键排序的关系的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55914609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com