私は共通テーブル式を使用します。あなたはIN (...)
句の内容を知らない場合には、最終的にあなたが動的にこれを設定するつもり必要だ
select t2.name, t2.room, t2.eventtime, t2.time_from_test
from the_table t1
inner join
(
select name, room,
min(eventtime) as eventtime,
(eventtime - currenttime) > 0 as time_from_test
from the_table
where the_table.room in ('ZACH102', 'ZACH103')
group by name, room
order by time_from_test
) t2 on t2.room = t1.room and t2.name = t1.name
:しかし、それはあなたがMySQLを使っているように、私はこのような何かをしたいに見えるので、あらかじめ。その時が来たら、あなたの配列がすでにテーブルのどこかに格納されているように、前もって計画を立てるのが最善です。それはあなたに2つの選択肢を与えます。最初は巣にあなたのIN (...)
状態でサブクエリです:
select t2.name, t2.room, t2.eventtime, t2.time_from_test
from the_table t1
inner join
(
select name, room,
min(eventtime) as eventtime,
(eventtime - currenttime) > 0 as time_from_test
from the_table
where the_table.room in (select room from shopping_cart where session_key='MySessionKey')
group by name, room
order by time_from_test
) t2 on t2.room = t1.room and t2.name = t1.name
他の結合を使用することです:
select t2.name, t2.room, t2.eventtime, t2.time_from_test
from the_table t1
inner join
(
select name, room,
min(eventtime) as eventtime,
(eventtime - currenttime) > 0 as time_from_test
from the_table
inner join shopping_cart on shopping_cart.room = the_table.room
where shopping_cart.session_key = 'MySessionKey'
group by name, room
order by time_from_test
) t2 on t2.room = t1.room and t2.name = t1.name
どのように配列を渡しているの?それはSQL配列か、関数を呼び出すときに別の言語を使用していますか? – Gage
PHPの情報を解析して部屋の名前を配列に格納するデータベースクエリの結果があります。それから私は上記のクエリの配列を – maknelly
に使っています。また、time_from_testが必要ですか、現在のシステム時刻から次のイベントを探していますか? – Gage