我有一个像这样的有效的mysql查询:
SELECT mc.cart_id, mc.mystore_user_id, MIN(ci.created_at) AS created_at
FROM dmspro_mys_cart AS mc
INNER JOIN dmspro_mys_cart_item AS ci
ON ci.cart_id = mc.cart_id
WHERE mc.is_noticed = 0 AND ci.created_at < '2019-10-08 07:08:39'
GROUP BY mc.cart_id
并且我将其转换为Laravel项目中的查询生成器:
public function getMinCreatedAt($cartTime)
{
$oSelect = $this->select("{$this->table}.cart_id", "{$this->table}.mystore_user_id",\DB::raw('MIN(ci.created_at) AS created_at'))
->join('cart_item AS ci', 'ci.cart_id', '=', "{$this->table}.cart_id")
->where("{$this->table}.is_noticed", '=', 0)
->where('ci.created_at', '<', $cartTime)
->groupBy("{$this->table}.cart_id")
->get();
return $oSelect;
}
但是当我运行它时,出现错误:
找不到列:1054“字段列表”中的未知列“ ci.created_at”(SQL:选择
dmspro_mys_cart
。cart_id
,dmspro_mys_cart
。mystore_user_id
,MIN(ci.created_at)个AS created_at来自dmspro_mys_cart
内部联接dmspro_mys_cart_item
为dmspro_mys_ci
上的dmspro_mys_ci
。cart_id
=dmspro_mys_cart
。cart_id
其中dmspro_mys_cart
。is_noticed
= 0和dmspro_mys_ci
。created_at
<2019-10-09 15:51:37 group bydmspro_mys_cart
。cart_id
)
我该如何解决?
谢谢!
更新:dmspro_mys_是我的前缀
在错误消息中,提到了一个名为“ dmspro_mys_ci”的别名,但您的查询中不存在该别名。