2012-02-07 9 views
1

私は、その都市と州の市町村、州および郵便番号を取得するSQL文を作成しようとしています。私のクエリは州、都市、および郵便番号のリストだけを返します。私はどのように1つを書くか分からない。私は良い@ SQLではない。もし誰かが私を助けることができれば素晴らしいだろう。SQLで郵便番号の問題を選択する

--------州--------------------------市

のように私のテーブルに見えます - 郵便番号------------郡

Alpharetta  Georgia  30004   Fulton 
Alpharetta  Georgia  30005   Fulton 
Alpharetta  Georgia  30007   Fulton 
+4

いいえ、あなたはSQLがうまくいきません。試してみるのはいいですか?何を試しましたか? –

+0

@Catcall私はこれを試しました--- select * from( )都市、州、郵便番号、 (*)cnt 郵便局から グループ都市別、州別 ) ここでrank = 1 – Siva

+0

あなたは必要以上に難しくなっています。 http://stackoverflow.com/a/9169243/562459 –

答えて

2
SELECT 
    City, State, County, 
    GROUP_CONCAT(Zipcode SEPARATOR ',') AS Zipcodes 
FROM 
    MyTable 
WHERE 
    <Whatever you have> 
GROUP BY 
    City, State 
+0

これは完璧に動作します@Eugen Rieck – Siva

0

声明は以下の

SELECT "City", "State", "Zipcode" 
FROM Table 
WHERE "City" = 'CityName' AND "State" = 'StateName' 
GROUP BY "City", "State" 

のようになります。これは、都市、状態に基づいて、あなたにそれらを与えるだろうし、郵便番号はgrouピングは、あなたが行ごとに複数の

+0

これは私に1つのマッチで行を与えます。私は与えられた都市と州の郵便番号のリストを探していました。 – Siva

+0

グループを削除すると、探しているものが表示されます。 – darren102

3

あなたは、これはこれは、アルファレッタ、ジョージア州のためのすべてのジップコードを選択します

SELECT City,State,Zipcode 
FROM my_table 
WHERE City='Alpharetta' AND State='Georgia' 

を?:意味するか与えられていることを確認します。それぞれの郵便番号と対応する都道府県(つまり、 'Alpharetta' & 'ジョージア')について、結果に1行が表示されます。

それとも、あなたがこのような何かしたいものであれば:

City  State  Zipcodes 
Alpharetta Georgia 30004,30005,30007 
..... 

あなたが試すことができます:

SELECT City, State, GROUP_CONCAT(Zipcode) AS Zipcodes 
FROM my_table 
GROUP BY City, State 

(オプションWHERE City='xxxxx' AND State='yyyyy'とを)。

Docs for GROUP_CONCAT

+0

私は第2の選択肢を探していました。大きな助けをいただきありがとうございます。 – Siva