2012-02-05 27 views
0

これは本当に私を混乱させてしまいました。MySQL SELECT DISTINCTが期待どおりに動作しない

このクエリは、重複car_id番号とはいえ

SELECT car_id FROM `Updates` ORDER BY `updates`.`created` DESC 

を期待した結果を返すこれらの2つのクエリは、結果の同じセットを返す:

SELECT distinct `Updates`.`car_id` FROM `Updates` ORDER BY `updates`.`created` DESC 

SELECT car_id FROM `Updates` GROUP BY car_id ORDER BY `updates`.`created` DESC 

は、彼らがどのように異なるかのようかかわらず、以下を参照してください。 See below though as to how they differ:

+0

おそらく、あなたはそれが意味のある結果を返すように、問合せをリライトしたいですか?私の推測では、彼らは欠けているわけではないが、結果セットに戻る。確認するIDで注文してください。 – stryba

+0

@strybaあなたが正しいです、それは他のidが実際にリストにあるように私が指定したコピーではないようです - ORDER BY updates.created DESC任意のアイデア? – KieranYo

答えて

1
私はこれがあなたの問題と厳密に関連しているとは思わない

けどを作成しました:

SELECT DISTINCT car_id 
FROM Updates 
ORDER BY created DESC 

は有効な標準SQL構文ではありません。同じcar_idと異なるcreatedの値を持つ行が数多くある可能性があります。注文のためにどちらを使うべきですか?返されたどのように多くの行

SELECT car_id 
FROM Updates 
GROUP BY car_id 
ORDER BY MAX(created) DESC    --- or MIN(created) 
             -- whatever suits you 
+0

MAX(作成済み)は完全に機能しました。ありがとう@ypercube! – KieranYo

+0

私の一日を保存しました...ありがとう –

1

updates.createdで注文しています。おそらく、これはそれぞれ別個のcaridが出現することを意味します。比較を実行するにはcaridで注文してください。

この作品のような
+0

あなたはそうです、他のIDは実際にリストにあります。私が指定したコピーには含まれていません - ORDER BY 'updates'.'created' DESC アイデアはありますか? – KieranYo

+0

あなたは何をお探しですか? – jzila

-1

なりの何か:BY car_id ORDER BYアップデートグループから

SELECT * DESC

関連する問題