2017-04-25 130 views
0

選擇行其實我的數據庫由兩個主表城市&的天氣,我想選擇最新的氣象表的條目。與最近的時間戳

它看起來大約是這樣的:

plz  cities_plz description name   modified 
9020  9020  looks great Klagenfurt 24.04.2017 
9020  9020  rain  Klagenfurt 25.04.2017 
9020  9020  rain  Klagenfurt 10.04.2017 
9100  9100  sunny  Villach  25.04.2017 

所以現在,我只是想獲得最新的條目。我用這個命令試了一下已經:

select * 
from  weather, cities 
WHERE weather.cities_plz = cities.plz 
ORDER BY modfified DESC; 

的問題是,這CMD沒降dublicates ... 任何想法?將不勝感激!

+1

向我們展示另一張表。兩個表中是否包含「修改」? –

+1

重複哪個字段? – McNets

+0

我們在1992年停止以這種方式寫查詢。來吧。加入我們。另請參閱http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql - 查詢 – Strawberry

回答

1

您可以使用LIMIT得到最後修改的條目:

SELECT * 
FROM weather, cities 
WHERE weather.cities_plz = cities.plz 
ORDER BY modified DESC 
LIMIT 1; 

你想爲每個城市的最後一個條目:

SELECT DISTINCT * 
FROM weather, cities 
WHERE weather.cities_plz = cities.plz 
    AND modified = (SELECT MAX(modified) FROM weather WHERE weather.cities_plz = plz) 
+0

非常感謝,它非常完美! –

0

試試這個:

SELECT * FROM `weather`, `cities` WHERE `weather`.`cities_plz` = `cities`.`plz` 
AND `modified` = (SELECT MAX(modified) FROM `weather` WHERE `cities_plz` = `cities_plz`) ORDER BY `modified` DESC; 
0

你可能要添加一個不同的查詢。

SELECT DISTINCT例子: https://www.w3schools.com/sql/sql_distinct.asp

+0

我認爲這不能保證天氣表的最新修改日期。 – Filip

+0

它可以,如果你做一個錯綜複雜的查詢,你提議。但他忘了告訴我們一件重要的事情,他使用的是數據庫提供商。 – prignony

0

你必須寫子查詢

SELECT test.* FROM 
(select * from weather LEFT JOIN cities on cities.plz = weather.cities_plz 
ORDER BY weather.modified DESC) as test 
GROUP BY test.cities_plz