sql查询从一个主表和两个子表中获取名称和desc。
问题描述:
嗨,我有这样的表结构。sql查询从一个主表和两个子表中获取名称和desc。
表
**geoinfo**
id
name
desc
我有表
**zip_to_city**
id,
zip_id fk geoinfo
city_id fk geoinfo
比我也有
**zip_to_state**
id
zip_id fk geoinfo
state_id fk geoinfo
我想查询,以便我能够得到各拉链与相应的城市和状态。我不想要这个id,我想要这个名字。 geoinfo是包含每个geoinfo的名称和描述的主表。
什么是最好的查询来做到这一点?
答
SELECT city_geo.geography_name as city,state_geo.geography_name as state, zip_geo.geography_name as postalCode
FROM zip_to_city zc, zip_to_state zs,
geoinfo city_geo, geoinfo state_geo, geoinfo zip_geo
where zc.city_id = city_geo.id
AND state_geo.id= zs.state_id
AND zip_geo.id = zc.zip_id
AND zip_geo.id = zs.zip_id
AND zip_geo.name = ?
这对我的作品,并得到我想要的东西。
答
我想,如果我理解正确的表格:
SELECT zip_to_city.city_id,zip_to_state.state_id FROM geoinfo
INNER JOIN zip_to_city ON geoinfo.id=zip_to_city.id
INNER JOIN zip_to_state ON geoinfo.id=zip_to_state=id where geoinfo.id='some value'
表格是如何相互关联的? – 2012-02-21 00:31:36
没有足够的关于表格如何相关的信息。例如,什么是geoinfo? – Diego 2012-02-22 15:13:49