2011-07-29 208 views
26

我有一個表有2個字段(經度,緯度)和許多其他領域。 我想從這張表中選擇緯度和經度的不同組合。 這將是什麼查詢?選擇不同的組合。

+0

缺乏實例,請更具體。 –

+0

@ Scorpi0實際上有足夠的回答這個問題,除了可能告訴我們他正在使用什麼數據庫。 –

回答

48

只需使用不同的

SELECT DISTINCT Latitude, Longitude 
    FROM Coordinates 

其中(Latitude, Longitude)組合是唯一的,則將返回值。

此示例假設您不需要其他列。如果你需要的話,即表中有Latitude, Longitude, LocationName列,你既可以添加LocationName到不同的目錄,或使用的東西線沿線的:

SELECT Latitude, Longitude, MIN(LocationName) 
    FROM Coordinates 
    GROUP BY Latitude, Longitude 
+0

對於我來說,兩個查詢返回不同數量的結果。例如,第一個查詢返回1000行,第二個查詢(第一個查詢+ GROUP BY子句)返回800行。 – ratulalahy

+0

如果您有多個查詢,則第二個查詢只獲取一個(或多或少隨機)LocationName。 – SWeko

1

我認爲這將是一些有關:

SELECT latitude, longitude 
FROM table_name t1 
INNER JOIN table_name t2 
WHERE t1.latitude <> t2.latitude OR t1.longitude <> t2.longitude 

這是自我內在聯接。

9

其舊帖子。但我只是在爲同樣的問題尋找一隻怒氣的時候碰到它。以上回答並沒有爲我工作,但我發現使用CONCAT()另一種簡單的解決方案:

SELECT * 
FROM Coordinates 
GROUP BY CONCAT(Latitude, Longitude); 

這會給你所有的獨特緯度/經度的組合,沒有任何限制的查詢的選擇部分。

+0

由於某種原因concat不適合我,它會導致查詢中的錯誤,當我在http://127.0.0.1:8080/phpmyadmin鍵入查詢,安裝了wamp時,它甚至不會彈出一個選項http://i.imgur.com/Egqpwct.png – barlop