mysql - 如何在没有关系的情况下通过枢轴选择将表与其自身连接?

标签 mysql laravel-5 query-builder

所以我的users表有列 idfb_id 。第二张表friendships有两个相关列user_idfriend_id哪个id根据AB填充和BA原则。当$user已登录,我获取了他 friend 的 $facebook_ids 的数组.

我可以通过 $friends = User::whereIn('fb_id', $facebook_ids) 找到这些用户...然后我有点卡住了。如何找到 FB 上有好友但不在我的好友表中的用户?

编辑: 按照所有逻辑数据应该是这样的 enter image description here 我在想类似的事情

$known_friend_query = $session_owner->friends();
$fb_list_query = User::whereIn('fb_id', $fb_ids);
$new_friends = $known_friend_query->join($fb_list_query, 'right outer')->get(); //this line should be wrong

但是我如何加入查询呢?

最佳答案

这个答案是为了提醒自己保持简单

$known_friend_ids = $session_owner->friends()->select('users.id')->get();
$new_friends = User::whereIn('fb_id', $fb_ids)->whereNotIn('id', $known_friend_ids)->get();

关于mysql - 如何在没有关系的情况下通过枢轴选择将表与其自身连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37168163/

相关文章:

php - 有没有办法在自定义\Illuminate\Contracts\Validation\Rule 中使用参数

php - Laravel 查询生成器统计所有 25 到 35 岁的单例

postgresql - 依赖安装失败!将 laravel 应用程序部署到 heroku 时出错

Laravel 5 CORS - XMLHttpRequest 无法加载 http ://myapi. com.预检响应具有无效的 HTTP 状态代码 500

sql - Laravel 按条件 eloquent 或 sql 排序

php - 如何将 mysql 查询转换为 laravel 查询生成器

mysql - 从外部地址访问 XAMPP

MYSQL - 更新具有递增值的列,每次满足条件时都会重置

mysql - 提高 SQL 'Update' 函数的速度 - 插入/删除?

mysql - 与子查询连接、计数和分组