tp5连表查询时,where语句冲突问题

Posted seanpan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tp5连表查询时,where语句冲突问题相关的知识,希望对你有一定的参考价值。

 

今天做连表查询的时候,发现加入where语句时会报该条件不明确的sql错误,有点懵,

翻找了一些资料,发现是其中两张表有相同的字段名,我又没有指定该where条件是哪张表的该字段。

修改为where为以下代码即可

$where = array(
    ‘a.store_id‘ => $storeId,
    ‘a.goods_user_status‘ => 1,
);

 

public function index()

//获取当前店铺id
$uid = session(‘home_uid‘);
$storeId = db(‘store‘)->where(‘store_uid‘,$uid)->field(‘store_uid‘)->find();
$storeId = implode(" ",$storeId);
$storeId = (int)$storeId;
$where = array(
‘a.store_id‘ => $storeId,
‘a.goods_user_status‘ => 1,
);
//全部商品
$goodsRes = Db(‘goods‘)
->alias(‘a‘)
->join(‘goods_class b‘,‘a.class_id = b.class_id‘,‘LEFT‘)//商品分类
->join(‘store_class c‘,‘a.store_class_id = c.class_id‘,‘LEFT‘)//店铺分类,在个人店铺里的
->field(‘a.* , b.class_name, c.class_name as store_class_name‘)
->where($where)
->order(‘goods_id desc‘)
->paginate(10);

$this->assign([
‘seo_title‘=> ‘店铺商品-‘ . config(‘site.WEB_TITLE‘),
‘seo_keywords‘=> config(‘site.WEB_KEYWORDS‘),
‘seo_desc‘=> config(‘site.WEB_DESCRIPTION‘),
‘goodsRes‘ => $goodsRes,
]);
return $this->fetch(‘seller_goods/index‘);

以上是关于tp5连表查询时,where语句冲突问题的主要内容,如果未能解决你的问题,请参考以下文章

TP5.1 getLastSql输出查询的SQL语句

EF的连表查询Lambda表达式和linq语句(转)

tp5 Db查询时一个字段多个值迷糊查询

单表查询: where group by 分组 having distinct 去重 order by 排序 limit 多表查询 子查询 连表查询

sqlserver 模糊查询,连表,聚合函数,分组

php tp5 语句后面链式追加sql语句