は、スキーマの下に考えてみましょう:が最適化された選択クエリを必要
Tables: Tasks (tid, jobid, status, name)
Jobs(jobid, submitTime)
ここで私は、1つのジョブIDで複数のタスクテーブルの行を持つことができます。今度は、Tasksテーブルからすべての行をステータス= 5とし、同じjobidを持つ他のすべての行も5にする必要があります。
例:私はjobidに1行とstatus = 5、最後の3つはjobid = 2であり、2つはステータス= 5でステータスが4であるものです。 jobid = 1の行はすべてステータス= 5なので、私のクエリではjobid = 1の最初の2行しか返されません。 jobid = 2の行がステータス= 4のため、jobid = 2の行は戻されません。
私は、タスクテーブルに300Kの行があると仮定して、最適化されたクエリを構築するのに助けが必要です。
mysql> select * from task;
+--------+-------+--------+----------------------+
| taskid | jobid | status | name |
+--------+-------+--------+----------------------+
| 1 | 1 | 5 | Task 1, Job 1 |
| 2 | 1 | 5 | Task 2, Job 1 |
| 3 | 2 | 5 | Task 3, Job 2 |
| 4 | 2 | 5 | Task 4, Job 2 |
| 5 | 2 | 4 | Task 5, Job 2 status |
+--------+-------+--------+----------------------+
5 rows in set (0.00 sec)
mysql> select * from job;
+-------+---------------------+
| jobid | time |
+-------+---------------------+
| 1 | 2016-07-15 15:13:42 |
| 2 | 2016-07-15 15:13:44 |
+-------+---------------------+
私は必要な出力:
+--------+-------+--------+----------------------+
| taskid | jobid | status | name |
+--------+-------+--------+----------------------+
| 1 | 1 | 5 | Task 1, Job 1 |
| 2 | 1 | 5 | Task 2, Job 1 |
質問を編集して、入力と希望する出力を表として表示してください。あなたの説明を表形式に翻訳することはできません。 –
'jobs'テーブルはあなたの質問にどのように関連していますか? – mitkosoft
@TimBiegeleisen –