2017-04-25 10 views
0

実際に私のデータベースは2つのメインテーブル都市&の天気と私は天気表の最新の項目を選択したいと思います。最新のタイムスタンプの行を選択

それは約次のようになります。

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

他のテーブルも表示してください。 2つのテーブルに 'modified'が含まれていますか? –

+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を参照してください。 -query – Strawberry

答えて

1

から、あなたは最後に変更されたエントリを取得するためにLIMITを使用することができます:あなたが書く必要が

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

あなたのクエリで明確なを追加したい場合があります。

DISTINCT例を選択: https://www.w3schools.com/sql/sql_distinct.asp

+0

天気予報の最新の更新日を保証するものではないと思います。 – Filip

+0

あなたが提案したものと同じように複雑な質問をすることができます。 しかし、彼は私たちに重要なことを教えてくれず、どのデータベースプロバイダを使用しているのか忘れていました。 – prignony

0

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

あなたは各都市の最後のエントリをしたいがこのサブの質問

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 
関連する問題