2013-05-10 150 views
0

我有表格fedcodes列FEATURE_NAME,STATE_ALPHA,COUNTY_NAME和人口數據 - 其他數據。 我需要選擇FEATURE_NAMESTATE_ALPHA匹配的所有條目,而COUNTY_NAME是不同的。我還需要來自這些行的所有數據,而不僅僅是列出的三個數據。 此外,我需要在輸出列表中顯示這兩個/所有/這樣的事件。請幫忙。從同一個表中選擇,其中兩列匹配,第三個不匹配

我試過內連接,但它不會在同一張桌子上工作。我也試過以下腳本:

選擇fedcodes。來自fedcodes組的,count()num,FEATURE_NAME,STATE_ALPHA FEATURE_NAMESTATE_ALPHA,num> 1 ORDER BY fedcodesFEATURE_NAME DESC

但我不知道如何添加COUNTY_NAME不相同的術語,它只輸出一行,num列顯示出現次數。

例子:

ID FEATURE_CLASS FEATURE_ID FEATURE_NAME CENSUS_CODE  CENSUS_CLASS_CODE GSA_CODE OPM_CODE STATE_NUMERIC STATE_ALPHA  COUNTY_SEQUENCE  COUNTY_NUMERIC COUNTY_NAME  DATE_CREATED PRIMARY_LATITUDE PRIMARY_LONGITUDE DATE_EDITED  fips COUNTRY_NAME POPULATION_DATA  city_county_allocate is_county 
    146627 Populated Place  1616849  Wyandotte 88900 P1 5310 265310163 26 MI 1 163  Wayne 1980-04-14 00:00:00  42.2142064 -83.1499239  03/20/2008 26163 US 25883 100  1 
    147139 Populated Place  1617956  Wyandotte 88890 U6 NULL NULL 26 MI 1 61 Houghton 1980-04-14 00:00:00  46.8899335 -88.8754114  NULL 26061 US 0 0 0 

    34 Populated Place  2195 Bumstead 8360 U6 NULL NULL 4 AZ 1 13 Maricopa 1980-02-08 00:00:00  33.5733726 -112.3568269 NULL 04013 US 0 0 0 

-As你可以看到例如Wyandote是兩縣因此兩個項目一個人口數據25883,另一個人口數據0所以我需要這兩個條目。而Bumstead只在一個縣,所以我不需要那個選擇。我希望這個例子能更好地解釋一些事情。

+0

還有,你試過嗎? – aweis 2013-05-10 20:13:39

+1

此問題沒有顯示任何研究工作。 **做你的作業很重要**。告訴我們你發現了什麼,***爲什麼它不符合你的需求。這表明你已經花時間去嘗試幫助你自己了,它使我們避免重申明顯的答案,最重要的是它可以幫助你得到更具體和相關的答案。 [FAQ](http://stackoverflow.com/questions/how-to-ask)。 – Kermit 2013-05-10 20:14:24

+0

我的錯誤。我專注於發佈問題,所以忘了添加我曾嘗試過的。我編輯了這篇文章並添加了我的嘗試。請理解,我並不太熟悉MYSQL。 – 2013-05-10 20:18:52

回答

4

下面是一些psedo代碼,以幫助您入門。基本上你需要使用上面描述的規則將表加回自己,然後返回你需要的任何字段。

SELECT ... -- Add all the field you need from both intances of your table below 
FROM fedcodes T1 -- First instance of your table 
INNER JOIN 
     fedcodes T2 -- Second instance of your table 
ON  T1.FEATURE_NAME = T2.FEATURE_NAME 
AND  T1.STATE_ALPHA = T2.STATE_ALPHA 
AND  T1.COUNTY_NAME <> T2.COUNTY_NAME 
+0

當我添加line1中表中的所有字段時,它將返回:字段列表中的列'FEATURE_CLASS'不明確 – 2013-05-10 20:25:43

+0

您需要指定它來自哪個fedcodes表的實例。嘗試'T1.FEATURE_CLASS',它可以讓它知道從哪個副本中選擇該字段。 – 2013-05-10 20:27:19

+0

#1064 - 您的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在'COUNTY_NUMERIC',fedcodes.COUNTY_NAME',fedcodes.'DATE_CREATED',第1行的fedcodes.'PRI'附近使用正確的語法 – 2013-05-10 20:37:49

1

嘗試

SELECT f1.* 
FROM fedcodes f1 JOIN 
     fedcodes f2 ON f1.feature_name = f2.feature_name 
       AND f1.state_alpha = f2.state_alpha 
       AND f1.county_name <> f2.county_name 

SQLFIddle

+0

這一個返回整個表格。即使列中有一個條目,它也會在表格的第二個實例中的同一列中進行匹配。 – 2013-05-10 20:29:18

+0

@ user2364198你看看我提供的sqlfiddle嗎?請提供樣本數據(少數相關行)。 – peterm 2013-05-10 20:32:52

+0

我附上了一些示例行和簡短說明。對不起,我也很喜歡使用stackoverflow。 :( – 2013-05-10 20:50:37

相關問題