gpt4 book ai didi

php - Laravel/Eloquent/DB 查询 - 当为 null 且不为 null 时加入

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

我正在尝试这段代码但没有成功:

MyModel::join('countries', 'countries.id', '=', 'messages.from_country_id')
->join('users', 'users.id', '=', 'messages.user_id')
->where('messages.id', '=', $id)
->select('users.name', 'messages.from_name', 'messages.from_email', 'messages.content', 'countries.code AS c_code', 'countries.name AS c_name')->firstOrFail();

但在某些情况下,messages.user_id 为空。我想要的是检索所有消息,以及每个 message 具有正确的 users.name(当它可用时)。

最佳答案

我想你要的是 left join ,它将获取所有消息,以及拥有它的用户的用户名:

MyModel::join('countries', 'countries.id', '=', 'messages.from_country_id')
->leftJoin('users', 'users.id', '=', 'messages.user_id')
->where('messages.id', '=', $id)
->select('users.name', 'messages.from_name', 'messages.from_email', 'messages.content', 'countries.code AS c_code', 'countries.name AS c_name')->firstOrFail()

关于php - Laravel/Eloquent/DB 查询 - 当为 null 且不为 null 时加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29925696/

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