省份城市sql题两表关联 两表有相同字段select查…

2018-06-22 05:02:38来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

省份城市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) "广东"
  }
}

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

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:PHP 小数点保留两位

下一篇:PHP工作笔记:使用yii migrate管理、生成数据库