我正在处理一些人口普查数据,我需要嵌入查询并使用第一个查询的结果作为单独查询的条件。
这是我到目前为止所拥有的。
第一次查询:
SELECT SUMLEV, STATE, COUNTY, PLACE, COUSUB, CONCIT, PRIMGEO_FLAG, FUNCSTAT, NAME, STNAME, CENSUS2010POP, ESTIMATESBASE2010, POPESTIMATE2010,
POPESTIMATE2011, POPESTIMATE2012, POPESTIMATE2013, POPESTIMATE2014
FROM [SUB-EST2014_ALL]
WHERE (SUMLEV = '50') AND (CENSUS2010POP > 1000000) AND
(CENSUS2010POP < 100000000)
此查询的一个结果是:
50 4 13 0 0 0 0马里科帕县亚利桑那州3817117 3817357 3823609 3870076 3942868 4013164 4087191
此结果中的第二和第三个数据点,&#39; 4&#39; &安培; &#39; 13&#39;,是我第二次查询所需要的。
该查询是:
SELECT SUMLEV, STATE, COUNTY, PLACE, COUSUB, CONCIT, PRIMGEO_FLAG, FUNCSTAT, NAME, STNAME, CENSUS2010POP, ESTIMATESBASE2010, POPESTIMATE2010,
POPESTIMATE2011, POPESTIMATE2012, POPESTIMATE2013, POPESTIMATE2014
FROM [SUB-EST2014_ALL]
WHERE (STATE = '4') AND (COUNTY = '13')
我只想显示第二个查询的结果。如果两个结果都显示出来会有很多重复。
我不是SQL查询的新手,但我绝不是专家。这远高于我的知识水平。有人可以帮我搞定吗?
答案 0 :(得分:0)
如果您的第一个查询只返回1行,那么您可以选择STATE和COUNTRY为变量,然后在第二个查询中使用它们。如果它返回多于1行,则加入两个结果集...
SELECT Q2.*
FROM
(
SELECT STATE, COUNTY
FROM [SUB-EST2014_ALL]
WHERE (SUMLEV = '50') AND (CENSUS2010POP > 1000000) AND (CENSUS2010POP < 100000000)
) Q1
INNER JOIN
(
SELECT SUMLEV, STATE, COUNTY, PLACE, COUSUB, CONCIT, PRIMGEO_FLAG, FUNCSTAT, NAME, STNAME, CENSUS2010POP, ESTIMATESBASE2010, POPESTIMATE2010,
POPESTIMATE2011, POPESTIMATE2012, POPESTIMATE2013, POPESTIMATE2014
FROM [SUB-EST2014_ALL]
) Q2 ON Q1.STATE = Q2.STATE AND Q1.COUNTRY = Q2.COUNTRY