子查询:Laravel 4.2

时间:2016-01-04 07:31:00

标签: php mysql laravel-4.2

概念:我试图从9999和1111检索公共页面。见下文。 (ACF Fiorentia)

PHPMyAdminDatabase

mysql查询:来自fb_likes的SELECT *,其中page_id IN(

SELECT page_id FROM fb_likes WHERE user_fb_id = 9999)

user_fb_id = 1111

PHP代码:

     $temp = FBLikes::where('user_fb_id','=','1111')->get(array('page_id'));
        $tempArr = array();
        for($i = 0; $i < count($temp); $i++){
            $tempArr = array_add($tempArr, $i, $temp[$i]['page_id']);
        }
        print_r($tempArr);
        $common_likes = FBlikes::whereIn('page_id', $tempArr)->where('user_fb_id','=', '9999')->get();

我尝试使用雄辩。它没有成功。

遵循的步骤:我首先执行了子查询。然后将数据转储到$ tempArr。然后我将数组$ tempArr传递给主查询。

结果:$ common_likes中没有保存任何内容。

你能帮我在单个Eloquent语句中编写mysql子查询吗?谢谢。

1 个答案:

答案 0 :(得分:1)

您构建了无效的数组,而您不必这样做。尝试将$tempArr替换为$temp并删除所有此代码:

$tempArr = array();
for($i = 0; $i < count($temp); $i++){
    $tempArr = array_add($tempArr, $i, $temp[$i]['page_id']);
}
print_r($tempArr);

你不需要它。