抱歉这个问题的标题,我不知道如何为这个问题措辞。
我有一个看起来像这样的表:
entry_id | cat_id
---------+-------
1 | 23
1 | 17
1 | 34
1 | 11
2 | 25
2 | 28
2 | 90
2 | 23
然后我有不同的类别数组
$cats1 = [23, 46, 67]
$cats2 = [34, 28, 91]
我需要取回两个数组entry_id
中都有cat_id
' 的 ',但如果我这样做了
->where_in('cat_id', $cats1)->where_in('cat_id', $cats2)
显然这是行不通的,因为没有一行cat_id
与它相关联。在这种情况下,entry_id
I would want back 是1
,因为它包含来自 first 的一个值array(23)
,以及来自 second的一个值array(34)
。
我不能使用or_where
,因为结果不准确。我可以使用直接的 SQL 选择语句,但我想知道是否有办法在这样的表上实现这种类型的查询。我不是 SQL 专业人士,因此不胜感激。
我目前使用另一种解决方案让它工作,我entry_id
从第一个获得 's where_in
,然后让另一个查询执行where_in
those id
's 和where_in
第二个猫数组,但我更愿意一次完成整个查询。
这是在 PHP 中。