程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 省份城市sql題兩表關聯 兩表有相同字段select查詢可現實 thinkphp裡查詢無法顯示兩個相同字段,selectthinkphp

省份城市sql題兩表關聯 兩表有相同字段select查詢可現實 thinkphp裡查詢無法顯示兩個相同字段,selectthinkphp

編輯:關於PHP編程

省份城市sql題兩表關聯 兩表有相同字段select查詢可現實 thinkphp裡查詢無法顯示兩個相同字段,selectthinkphp


省份城市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) "廣東"
  }
}

正常顯示,如題目的要求!除了修改字段名稱還有其他的方法嗎?問朋友,朋友說只能修改字段名稱...

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved