【问题标题】:Column not found: 1054 Unknown column '2' in 'on clause' - InnerJoin query not working properly未找到列:1054 'on 子句'中的未知列 '2' - InnerJoin 查询无法正常工作
【发布时间】:2021-09-05 12:10:58
【问题描述】:

我正在尝试执行以下代码,错误适用于代码的 $waitingToBeShipped... 部分。如您所见,我正在使用innerJoin。我想检索包含仍在等待发货的产品的订单的所有行。

public function destroyMany($ids) {
    $status = false;
    $ids = explode(",", $ids);
    foreach ($ids as $id) {
        $innerJoin = OrderDetails::where('product_id', $id)->pluck('order_id');
        if ($innerJoin->count()) {
            $innerJoin = preg_replace("/[^A-Za-z0-9\-]/", '', $innerJoin);
            Log::info($innerJoin);
        } 
        $waitingToBeShipped = Order::where('is_delivered', 0)
        ->join('order_details', 'orders.id', '=', $innerJoin)
        ->get();
    }
}

但它会返回:

local.ERROR: SQLSTATE[42S22]: Column not found: 1054 Unknown column '2' in 'on clause' (SQL: select * from `orders` inner join `order_details` on `orders`.`id` = `2` where `is_delivered` = 0 and `orders`.`deleted_at` is null)

我尝试在 PHPMyAdmin 中手动运行此查询,这也会导致我刚刚复制的文字查询出现错误,但是,当我删除数字 2 周围的反引号时,它确实给了我一个结果。

我不确定如何为我的代码做同样的事情?任何帮助将不胜感激,谢谢!

【问题讨论】:

    标签: sql laravel eloquent controller inner-join


    【解决方案1】:

    解决方法是将查询更改为:

    public function destroyMany($ids) {
        $status = false;
        $ids = explode(",", $ids);
        foreach ($ids as $id) {
            $innerJoin = OrderDetails::where('product_id', $id)->pluck('order_id');
            if ($innerJoin->count()) {
                $innerJoin = preg_replace("/[^A-Za-z0-9\-]/", '', $innerJoin);
                Log::info($innerJoin);
            } 
            $waitingToBeShipped = Order::where('is_delivered', 0)
            ->join('order_details', 'orders.id', '=', 'order_details.order_id')
            ->where('order_details.order_id', $innerJoin)
            ->get();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2019-08-23
      • 2022-01-14
      • 1970-01-01
      • 1970-01-01
      • 2016-01-11
      • 2020-03-17
      • 1970-01-01
      • 2021-05-06
      • 1970-01-01
      相关资源
      最近更新 更多