0

以下のクエリが、まだ開始されていないレポートに割り当てられたテンプレートの「テンプレート」IDを返す場合...

また、どのように言うことができますか(そして、これらのテンプレートIDのそれぞれについて-このテンプレートIDは、すでに開始されている他のレポートには含めることができません)。

または、以下のクエリを完了しようとしているので、「開始したレポートでテンプレートが使用されていないすべてのテンプレートのIDを教えてください」と表示されます。たとえば、t.idごとにテーブルをループして、template_id(t.id)が既に開始されている他のレポートがないことを確認しました。

SELECT DISTINCT t.id, 
FROM templates t
LEFT OUTER JOIN reports r ON r.template_id = t.id
WHERE r.start_time >=  UTC_TIMESTAMP()

ありがとう!

4

1 に答える 1

1

次のようなサブクエリを使用できます

SELECT DISTINCT t.id, 
FROM templates t
LEFT OUTER JOIN reports r ON r.template_id = t.id
WHERE r.start_time >=  UTC_TIMESTAMP() and t.id not in (select CONCAT_WS(',',tid) where report started) 

正確なテーブル構造がわからないため、サブクエリを完了していません。それに応じてwhere句を完成させます

于 2012-06-08T18:30:05.797 に答える