MySQL 数据库包含国家、城镇和城镇内的地区,所有这些都在“mailshot”表中。我想按粒度降序返回整个集合,使用和内部连接。我实际上想向用户展示一个下拉列表,让他们选择一个国家或城镇或城镇内的区域。
数据如下所示:
mailshot_id mailshot_parent mailshot_name mailshot_level 49 0英格兰0 56 0 苏格兰 0 140 49 伦敦 1 149 49 约克 1 191 56 格拉斯哥 1 300 140 温布尔登 2 310 140 威斯敏斯特 2 493 56 爱丁堡 1
我希望它像这样输出:
mailshot_id mailshot_parent mailshot_name mailshot_level 49 0英格兰0 149 49 约克 1 140 49 伦敦 1 300 140 温布尔登 2 310 140 威斯敏斯特 2 56 0 苏格兰 0 191 56 格拉斯哥 1 493 56 爱丁堡 1
我几乎得到了它:
选择 p.mailshot_id 作为 p_id, p.mailshot_name 作为 p_name, p.mailshot_level 作为 p_level, p.mailshot_parent 作为 p_parent, c.mailshot_id 作为 c_id, c.mailshot_parent 作为 c_parent, c.mailshot_level 作为 c_level, c.mailshot_name 作为 c_name, 案子 当 p.mailshot_parent = 0 那么 p.mailshot_id 别的 p.mailshot_parent 结束为 calcOrder 从 mailshot p LEFT JOIN mailshot c ON p.mailshot_id = c.mailshot_parent ORDER BY calcOrder , p_id "
但它没有将孙子记录(2级)靠近子记录(1级)分组我认为“案例”部分一定是错误的,我需要在mailshot_id和parent_id之间建立一些依赖于级别的关系。但我想不通。
有什么建议么?提前致谢。