Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何在Laravel中执行此操作,子查询不在_Mysql_Laravel - Fatal编程技术网

Mysql 如何在Laravel中执行此操作,子查询不在

Mysql 如何在Laravel中执行此操作,子查询不在,mysql,laravel,Mysql,Laravel,我需要将这个查询转换为Laravel格式,我尝试使用WhereNotIn,但是我没有得到我想要的结果。有人能帮我吗 SELECT em.erp_mlbid AS category_id FROM erp_product AS ep INNER JOIN erp_product_description AS epd ON epd.erp_productid = ep.erp_productid INNER JOIN erp_product_category AS epc ON epc.erp_p

我需要将这个查询转换为Laravel格式,我尝试使用WhereNotIn,但是我没有得到我想要的结果。有人能帮我吗

SELECT
em.erp_mlbid AS category_id

FROM
erp_product AS ep
INNER JOIN
erp_product_description AS epd ON epd.erp_productid = ep.erp_productid
INNER JOIN
erp_product_category AS epc ON epc.erp_productid = ep.erp_productid
INNER JOIN
erp_mlbcategory_erpcategory AS emc ON emc.erp_categoryid = epc.erp_categoryid
INNER JOIN
erp_mlb_category AS em ON em.erp_mcid = emc.erp_mlbcategoryid
INNER JOIN
erp_product_image AS epi ON epi.erp_productid = ep.erp_productid
WHERE
ep.erp_productid NOT IN (
SELECT
epm.erp_productid
FROM
erp_product_to_mlb AS epm
)
AND ep.erp_quantity > 0
AND ep.erp_status > 0
LIMIT
                    1
显然,我的行“WhereNotIn”被忽略,结果相同:

 $categoria = DB::table('erp_product')
                            ->join('erp_product_category','erp_product_category.erp_productid', '=', 'erp_product.erp_productid')
                            ->join('erp_mlbcategory_erpcategory', 'erp_mlbcategory_erpcategory.erp_categoryid', '=','erp_product_category.erp_categoryid')
                            ->join('erp_mlb_category', 'erp_mlb_category.erp_mcid', '=', 'erp_mlbcategory_erpcategory.erp_mlbcategoryid')
                            ->select('erp_mlb_category.erp_mlbid')
                            ->whereNotIn('erp_product.erp_productid', function($q){
                                $q->select('erp_productid')->from('erp_product_to_mlb');
                            })
                            ->get();
您有一个输入错误:

->whereNotIn('erp_product.erp_producid'
应该是:

->whereNotIn('erp_product.erp_productid'
请注意拼写错误的
productid


调试时可以做的一件事是删除
->get()
调用,以便
$categoria
是一个查询对象,然后执行此操作,以便可以查看组合的查询:

dd($categoria->toSql());
您有一个输入错误:

->whereNotIn('erp_product.erp_producid'
应该是:

->whereNotIn('erp_product.erp_productid'
请注意拼写错误的
productid


调试时可以做的一件事是删除
->get()
调用,以便
$categoria
是一个查询对象,然后执行此操作,以便可以查看组合的查询:

dd($categoria->toSql());

您是否需要执行
->whereNotIn('erp\u product.erp\u producid',function($q){$q->select('erp\u productid')->from('erp\u product\u mlb')->get();})
@FMashiro我试过了,但返回了“调用未定义的方法Illuminate\Database\Query\Builder::get”‌​()您是否需要执行
->whereNotIn('erp_product.erp_producid',function($q){$q->select('erp_productid')->from('erp_product_to_mlb')->get()}
@FMashiro我试过了,但返回了“调用未定义的方法illighted\Database\Query\Builder::get”‌​()“我修好了,但不是那样。我的whereNotIn仍然被忽略。
erp\u product\u to\u mlb
表是否有任何记录?是的,有2000条记录。我刚刚添加了一些内容供您尝试调试。查看实际组装的查询结果。我为Laravel安装了“Debugbar”,并返回:
选择
erp\u mlb\u类别
erp\u mlbid`from
erp\u product
内部连接
erp\u product\u category
上的
erp\u productid
=
erp\u产品
erp\u产品ID
内部连接
erp\u类别
erp\u类别
erp\u类别
erp\u类别
=
erp\u产品类别
erp\u类别内部连接
erp\u类别
erp\u mlbcategory\u erpcategory
erp\u mlbcategoryid
where
erp\u product
erp\u productid
不在(选择
erp\u productid
from
erp\u product\u to\u mlb
)我修复了它,但不是这样。我的whereNotIn仍然被忽略。
erp\u product\u to\u mlb
表是否有任何记录?是的,有2000条记录。我刚刚添加了一些内容供您尝试调试。查看实际组装的查询结果。我为Laravel安装了“Debugbar”,并返回:
选择
erp\u mlb\u类别
erp\u mlbid`from
erp\u product
内部连接
erp\u product\u category
上的
erp\u productid
=
erp\u产品
erp\u产品ID
内部连接
erp\u类别
erp\u类别
erp\u类别
erp\u类别
=
erp\u产品类别
erp\u类别内部连接
erp\u类别
erp\u mlb类别erp类别
erp\u mlb类别ID
其中
erp\u产品
erp\u产品ID
不在(选择
erp\u产品ID
erp\u产品到\u mlb
)`