请考虑下表'mmm':
select * from mmm;
Run Code Online (Sandbox Code Playgroud)
输出:
+-------+-------+------+
| texto | value | n |
+-------+-------+------+
| aaa | 10 | 1 |
| aab | 10 | 1 |
| aaa | 11 | 1 |
| aab | 11 | 1 |
| aaa | 10 | 2 |
+-------+-------+------+
Run Code Online (Sandbox Code Playgroud)
命令:
select a.*, '--', b.*
from mmm a
left join mmm b on (a.n=b.n)
where a.value < b.value
and a.texto ='aaa'
and b.texto='aab';
Run Code Online (Sandbox Code Playgroud)
收益:
+-------+-------+------+----+-------+-------+------+
| texto | value | n | -- | texto | value | n |
+-------+-------+------+----+-------+-------+------+
| aaa | 10 | 1 | -- | aab | 11 | 1 |
+-------+-------+------+----+-------+-------+------+
Run Code Online (Sandbox Code Playgroud)
没关系.但我想要的是:
+-------+-------+------+----+-------+-------+------+
| texto | value | n | -- | texto | value | n |
+-------+-------+------+----+-------+-------+------+
| aaa | 10 | 1 | -- | aab | 11 | 1 |
+-------+-------+------+----+-------+-------+------+
| aaa | 10 | 2 | -- | NULL | NULL | NULL |
+-------+-------+------+----+-------+-------+------+
Run Code Online (Sandbox Code Playgroud)
select a.*, '--', b.*
from mmm a
left join mmm b on (a.n=b.n)
where (a.value < b.value or b.value is null)
and a.texto ='aaa'
and (b.texto='aab' or b.textto is null);
Run Code Online (Sandbox Code Playgroud)
要么:
select a.*, '--', b.*
from mmm a
left join mmm b on (a.n=b.n and a.value < b.value and b.texto = 'aab')
where a.texto ='aaa' ;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8237 次 |
| 最近记录: |