数据库操作,用A表中地区编号去找B表中的地区名。拼接成一条数据返回。

这是order表,有地区编号跟id;
image.png

这是address_code表,有地区编号跟中文名
image.png

我是想,拿到order表的时候里面的地区号就转为中文名。

$address_code = api('app\sysorder\api\order', 'getAllAddress', $params);
        $order = api('app\sysorder\api\order', 'getOrderFind', $params);
阅读 1.9k
2 个回答
$field = "b.name province, c.name addressCity, d.name cityCode, a.realName, a.address, a.phone, a.remark, a.create_time";

$field是需要从数据库返回的数据,b.name province:
b是下列定义的数据表别名「 address_code b:(address_code是数据表名) 」

$data['list'] =  Db::name("order")->alias('a')
        ->leftJoin('address_code b','a.provinceCode = b.code')
        ->leftJoin('address_code c','a.eparchyCode = c.code')
        ->leftJoin('address_code d','a.cityCode = d.code')
        ->where($where)->field($field)->page($params['page'], $params['size'])->order('create_time','desc')->select()->toArray();

然后就返回我需要的数据了
image.png

可以使用 join 语句不? 不然就要拆成两步处理

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题