it0_soft 2023-08-24 15:28 采纳率: 42.9%
浏览 13

tp5查询主表存在子表多条记录中的最新一条

我想做的是查询主表存在于另一个子表的最新一条记录,$this->yuyue是主表,$this->model是子表有主表的多条记录,查询倒是查出来了,但是我想加个搜索条件就不行了,总提示不存在y_uid这个字段,我也很是纳闷不知道怎么回事,哪位帮忙看下,谢谢了!。


```php
if (!empty(!$param['y_uid'])) {
                $where['y_uid'] = $param['y_uid'];
            }

if (!empty($param['searchStart'] && !empty($param['searchEnd']))) {
                $where['y_sf_addtime'] = [['egt', strtotime($param['searchStart'] . "00:00:00")], ['elt', strtotime($param['searchEnd'] . "23:59:59")], 'and'];
            }
            
            $huifangs = $this->model
                ->order('y_sf_addtime', 'desc')
                ->limit(10000) //不加有可能获取的不是最新的一条
                ->buildSql();
                    
            $selectResult = $this->yuyue->alias('a')
                    ->join([$huifangs => 'b'], 'b.yyid = a.id', 'LEFT')
                    ->where($where)
                    ->where(['b.yyid' => ['neq','null'], 'b.y_tag' => ['in','1,2,3']])
                    ->field('a.id,a.y_name,a.y_sex,a.y_age,a.y_did,a.y_province,a.y_city,a.y_mzh,b.y_sf_addtime,b.y_sfnrbc,b.id as bid,b.y_hzsq,b.yyid,b.y_nextsfsj,b.y_uid')
                    ->group('a.id')
                    ->limit($offset, $limit)
                    ->order('b.y_sf_addtime desc')
                    ->select();

```

  • 写回答

2条回答 默认 最新

  • Weixin 小晨 2023-08-24 15:54
    关注

    根据您提供的代码,问题可能出在以下几个地方:

    $param['y_uid'] 字段不存在:请确保 $param['y_uid'] 字段的存在和正确性。您可以打印 $param 数组,检查是否包含了 y_uid 字段。

    $this->yuyue 模型中不存在 y_uid 字段:您可以检查 $this->yuyue 模型中是否包含了 y_uid 字段。如果没有该字段,请确认字段名是否拼写正确或是您可能需要修改为正确的字段名。

    $where 数组的键名 'y_uid' 错误:请确保 y_uid 是 $this->yuyue 模型中的字段名,与数据库表结构一致。如果不一致,请将键名修改为正确的字段名。

    评论

报告相同问题?

问题事件

  • 创建了问题 8月24日