これは比較的簡単な質問かもしれませんが、私はそれを解決するために苦労しています。私は3つのテーブルすべて(owners, pets, petTypes
)と次のデータを1つのクエリのすべてを抽出しようとしている。最初の2つは難しいことではありませんが、3番目と4番目は私が苦労している場所です。 https://pastebin.com/veXHwcMc列のMAX値と別の値から対応する値を選択
質問:
所有者ID
所有者名
- 所有者最古のペットの年齢
- 所有者最古のペットを
表のデータは、あなたが複製する場合タイプ名
私は
- 数
SELECT MAX(age) FROM pets
がSELECT pets.ownerId, MAX(pets.age), petTypes.name FROM pets INNER JOIN petTypes ON pets.petTypeId = petTypes.id GROUP BY pets.ownerId;
の両方を表示するためにテーブルの結合しかし、これは間違っている最古の年齢を選択
を試してみましたが、どのような他のペットの
。最も古い猫の正しい名前を表示する必要があるとき、彼らはすべて猫を見せているからです。
How can I SELECT rows with MAX(Column value), DISTINCT by another column in SQL?は、だから私は未遂:
が、私はこの質問をすると、カムSELECT petTypes.id, petTypes.name FROM petTypes INNER JOIN (SELECT MAX(age) FROM pets GROUP BY ownerId) pets ON petTypes.id = pets.petTypeId;
しかし、スローエラーがあるERROR 1054 (42S22): Unknown column 'petTypes.id' in 'on clause'
すべてのヘルプしてください
オーナーごとに最も古いペットの年齢のデータを取得できますか?これを使用してデータに参加し、所有者とペットの年齢に参加して表示されるペットの結果を制限できますか?複数のペットの年齢が同じであれば何が起こりますか?それらのすべてを望んでいますか、それとも1つしかありませんか?どのように決定するのですか? – xQbert
私は最も古いペットAND名を取得しようとしています。オーナーに同じ年齢の人が複数いる場合、私は1人だけ必要です – Nouman
まだ苦労している人は、次の記事を参照してください:[私は非常に単純なSQLクエリであると思われる?](https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql -query) – Strawberry