0

たとえば、私が持っている場合

Event
------
id
start_date
end_date
...

使うことができます:

SELECT * FROM event WHERE start_date > NOW()

ただし、start_dateを含む最新のイベントを1つ含めたいので、次のように修正しました。

(SELECT * FROM event WHERE start_date < NOW() ORDER BY start_date DESC LIMIT 1)
UNION ALL  
(SELECT * FROM event WHERE start_date > NOW())

これで望ましい結果が得られますが、実際のクエリは結合でより複雑であり、繰り返したくないので、おそらく余分なUNIONとSELECTを使用せずに、これを達成するためのより簡単な方法があるかどうか疑問に思っています。そのクエリを書くためのより良い方法はありますか?

4

1 に答える 1

0

あなたができること:

SELECT * FROM event WHERE start_date >= (
  SELECT MAX(start_date) FROM event WHERE start_date < NOW()
)
于 2012-09-15T00:14:42.343 に答える