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) "廣東"
}
}
正常顯示,如題目的要求!除了修改字段名稱還有其他的方法嗎?問朋友,朋友說只能修改字段名稱...