我想在管理员面板中的每个数据库网格中引入默认的国家/地区默认城市默认城镇 这些都不是下拉这些是db grid
我有三张桌子 国家/地区表 id(int),name(varchar),is_default enum('1','0') 城市表
id(int),country_id(int),name(varchar),is_default enum('1','0')
城镇表
id(int),countr_id(int),city_id(int),name(varchar),is_default enum('1','0')
我的管理员面板中有3个链接
国家清单
城市名单
城镇名单
国家/地区列表
- 当我打开国家/地区列表时,它将带来列表但默认国家/地区将首先出现
国家/地区默认
USA yes(它的第一行是因为它的is_dfault = 1)
德国没有
那没问题
从国家/地区选择*,其中is_default ='1'
城市列表
当我打开那个清单时
默认城市将位于城市列表页面中的此默认国家/地区
选择城市。*,country.name作为国家/地区
在country.id = city.id上离开加入国家
按country.is_default排序,city.is_default asc
那是错的sql我知道
例如
城市名称国家/地区默认
新泽西美国是(这个城市排在第一线,因为它的is_default = 1)
芝加哥美国没有
koln德国否(德国城市以美国城市开始,因为国家默认= 1)
城镇列表
我认为我的问题是订单(按is_default排序)或者我需要与其他选择不同的sql
我尝试了一些代码,但国家混合,其他城市和城镇列表
等待你的帮助。
感谢
答案 0 :(得分:0)
我不知道我是否明白你的意思,我试着回答。
我认为混合国家或其他列是错误的连接条件。 你的sql在这里:
Select city.*,country.name as country
left join country on country.id=city.id
order by country.is_default,city.is_default asc
以上是您发布的内容,因为它不完整,我猜你的加入条件“on country.id = city.id”是错误的。如果你想把这两个表组合在一起,你应该
SELECT city.*, county.name AS country_name from
country LEFT JOIN city ON country.id = city.country_id
ORDER BY country.is_default, city.is_default DESC
因为“is_default”是1,所以我使用“DESC”,然后首先弹出默认行。
我希望这会对你有所帮助:)