2017-04-25 131 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