在Laravel中获取匹配记录

在Laravel中获取匹配记录,laravel,Laravel,我不确定这是否是显而易见的,我看不到这一点,因为现在已经晚了,但现在我正在努力解决以下问题: 我想知道某处是否有火柴。所以,概要2喜欢概要1,概要1也喜欢概要2。那将是一场比赛 我试着组合数组,但没有结果。如何将其归档到Laravel查询中 $likey = DB::table('likes AS liker') ->join('likes AS liked', 'liker.liked_id', '=', 'liked.liker_id') ->s

我不确定这是否是显而易见的,我看不到这一点,因为现在已经晚了,但现在我正在努力解决以下问题:

我想知道某处是否有火柴。所以,概要2喜欢概要1,概要1也喜欢概要2。那将是一场比赛

我试着组合数组,但没有结果。如何将其归档到Laravel查询中

$likey = DB::table('likes AS liker')
        ->join('likes AS liked', 'liker.liked_id', '=', 'liked.liker_id')
        ->select('liked.liker_id', 'liked.liked_id')
        ->where('liker.liker_id', '=', 'liked.liked_id')
        ->get();
沿着这些路线的东西

编辑:只是为了澄清这个解决方案,这样你就不会陷入复制粘贴的诱惑,永远不知道这里发生了什么

我们将(使用内部连接,非常重要)这个表连接到simpy本身,因为(正如您所说的)我们必须检查它两次。首先是喜欢的人(首先喜欢某人档案的人),而不是喜欢的人(以喜欢作为回报的人)用户。考虑到这一点,我们加入这个表,在第二个表的liker_id上检查第一个表的like_id

这将使我们得到如下结果:

liker.liker_id | liker.liked_id | liked.liker_id | liked.liked_id
-----------------------------------------------------------------
2              | 1              | 1              | 2
1              | 2              | 2              | 1
请注意,这会给我们副本的!(非常重要)


考虑到这一点,我会考虑重新分配您的桌子。例如,添加名为“liked_back”的布尔列将为您提供更便宜、更清晰的查询,而不是执行任何操作…

查询不起作用,但这很好。添加另一列可能是更好的选择,因此我将尝试一下。谢谢