我有下表。
____________________________________
| 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 的所有行并获取这些卡并选择具有这些卡的所有行。很简单。
我更想知道是否可以在不使用多项选择的情况下解决这个问题?最好我正在寻找一个更快的解决方案,但我可以自己尝试一下。