省份城市sql题两表关联 两表有相同字段select查询可现实 thinkphp里查询无法显示两个相同字段...

省份城市sql题两表查询

1.写一条sql关联两个表要求显示字段如下 城市id 城市名称=name 省份名称=name

select c.id,c.name,p.name from city as c join province as p on c.pid=p.id;

结果:

省份城市两表联合查询结果

2.用thinkphp实现 关联两个表要求显示字段如下 城市id 城市名称=name 省份名称=name

     $model=new \Think\Model();
     $result=$model->query("select c.id,c.name,p.name from city as c join province as p on c.pid=p.id");
     var_dump($result);

输出的结果:

array(3) {
  [0]=>
  array(2) {
    ["id"]=>
    string(1) "1"
    ["name"]=>
    string(6) "湖南"
  }
  [1]=>
  array(2) {
    ["id"]=>
    string(1) "2"
    ["name"]=>
    string(6) "湖北"
  }
  [2]=>
  array(2) {
    ["id"]=>
    string(1) "3"
    ["name"]=>
    string(6) "广东"
  }
}

 查询出来的数据是不对的,是否sql语句写错了呢,没错的,因为两个表有两个相同的name字段,解决的办法是修改一个表的name字段就可以,比如修改city城市表的name字段为vname。

 $model=new \Think\Model();
 $result=$model->query("select c.id,c.vname,p.name from city as c join province as p on c.pid=p.id");
 var_dump($result);

运行结果:

array(3) {
  [0]=>
  array(3) {
    ["id"]=>
    string(1) "1"
    ["vname"]=>
    string(6) "长沙"
    ["name"]=>
    string(6) "湖南"
  }
  [1]=>
  array(3) {
    ["id"]=>
    string(1) "2"
    ["vname"]=>
    string(6) "武汉"
    ["name"]=>
    string(6) "湖北"
  }
  [2]=>
  array(3) {
    ["id"]=>
    string(1) "3"
    ["vname"]=>
    string(6) "广州"
    ["name"]=>
    string(6) "广东"
  }
}

正常显示,如题目的要求!除了修改字段名称还有其他的方法吗?问朋友,朋友说只能修改字段名称...

转载于:https://www.cnblogs.com/jilu/p/6138653.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值