次の表があります。
____________________________________
| carid | changeid | data1 | data2 |
|_______|__________|_______|_______|
| 1 | 1 |a |b |
| 1 | 2 |c |d |
| 1 | 3 |e |f |
| 2 | 3 |g |h |
| 2 | 2 |i |j |
| 2 | 4 |k |l |
| 3 | 5 |m |n |
| 3 | 1 |o |p |
| 4 | 6 |q |r |
| 4 | 2 |s |t |
|_______|__________|_______|_______|
次の結果を選択したい:
| carid | changeid | data1 | data2 |
|_______|__________|_______|_______|
| 1 | 1 |a |b |
| 1 | 2 |c |d |
| 1 | 3 |e |f |
| 3 | 5 |m |n |
| 3 | 1 |o |p |
|_______|__________|_______|_______|
つまり、行に changeid=1 がある場合、changeid=1 の行と同じ carid を持つすべての行を選択したいと考えています。
この問題は、複数選択を使用したクエリで簡単に解決できます。最初に changeid=1 のすべての行を選択し、それらの carid を取得して、それらの carid を持つすべての行を選択します。十分に単純です。
複数の選択を使用せずにこの問題を解決できるかどうかもっと疑問に思っていましたか? できれば、より高速なソリューションを探していますが、自分で試すことができます。