2
私はnow()よりも高い日付を持つテーブルを取得しました。私はnow()日付よりも対応する行の最大値を下げたい。私はまず、今までに日付を取得してから、最大値を取得しようとしました。私が唯一の正しい最大の日付を取得していますが、対応する行が間違っているsqlは今まで最大日付を選択します
select sub.*,MAX(sub.DATE)
From (
SELECT s.id_series,s.name,e.title,e.DATE
FROM episodes e
JOIN series s ON s.id_series=e.id_series
WHERE e.DATE < now()
) as sub
JOIN episodes ep on sub.id_series=ep.id_series
GROUP BY sub.name;
:自分で
は、私が思い付きます。どんな助け?
ありがとう、それは動作します。なぜmax()関数を使いませんでしたか? – Mike
maxは集計関数なので、正しく使用するにはgroup byを使用する必要があります。しかし、id_series(またはname)でグループ化すると、id_seriesとmax(e.date)の値だけが選択されます。列を追加することはできますが、それぞれに集計関数を配置する必要がありますが、左側と同じ行をとることはありません。ほとんどの方言では、集計なしで列を追加することはできませんが、MySQLでは可能ですが、任意の行を選択するだけです。グループ化して最大値を見つけ出し、元のテーブルに再結合して残りの列を取得することは可能です。 – maraca
ありがとうございました – Mike