sql查询从一个主表和两个子表获取名称和desc。

时间:2012-02-21 00:22:48

标签: sql join

嗨我有这样的表结构。

**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的名称和描述的主表。

最好的查询是什么?

2 个答案:

答案 0 :(得分:0)

如果我正确理解你的表格,我认为这是:

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'

答案 1 :(得分:0)

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 = ? 

这适合我并获得我想要的东西。