欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

在线等,关联查询问题,比如省市关联查询,一级省,二级市

程序员文章站 2022-06-07 17:34:18
...
关联查询问题,比如省市关联查询,一级省,二级市。查出的结果如山东省下有济南青岛,江苏省下面有南京苏州这种形式。
我现在查的是山东济南、山东青岛,江苏南京、江苏苏州这种形式,是一个数组。想查出来那种二维数组怎么写sql


回复讨论(解决方案)

这和数据的组织方式有直接关系
先说一下你的数据是什么样的

这和数据的组织方式有直接关系
先说一下你的数据是什么样的


数据库就是省市这种二级关联的

不能举个例子吗?
结构不同算法就不同

不能举个例子吗?
结构不同算法就不同



province表,和city表
想输出这种形式:array(
"0" =>array(
"province"=>"山东“
"belong"=>array(
array("city"=>"济南”),
array("city"=>"青岛”),
);
"1" =>array(
"province"=>"江苏“
"belong"=>array(
array("city"=>"苏州”),
array("city"=>"南京”),
);
);
);
想要这种形式

我知道你想要这个样子的
但需要知道你库里是怎么放的,是多表还是单表,名称和编码是什么样的

我知道你想要这个样子的
但需要知道你库里是怎么放的,是多表还是单表,名称和编码是什么样的


库里就是按省和市放的,province.id = city.pid,省的id就是市的pid,就这两个表,编码是utf8

create temporary table province (id int, name varchar(10)) charset gbk;create temporary table city (id int, pid int, name varchar(10)) charset gbk;insert into province values (1, '山东');insert into city values (1, 1, '济南');insert into city values (2, 1, '青岛');insert into province values (2, '江苏');insert into city values (3, 2, '苏州');insert into city values (4, 2, '南京');select id, 0 as pid, name from provinceunionselect pid, id, name from cityorder by 1,2
id pid name 1  0   山东 1  1   济南 1  2   青岛 2  0   江苏 2  3   苏州 2  4   南京 

最好贴出表结构