Mysql 查询后如何选择其中一行?
表1:Mysql 查询后如何选择其中一行?,mysql,sql,Mysql,Sql,表1: +-----------+----------+ | CODE | TYPEID | +-----------+----------+ | 441 | mn014 | | 223 | mn014 | | 224 | mn014 | | 655 | mn089 | | 854 | mn089 | | 449 | mn032 | +-----------+--------
+-----------+----------+
| CODE | TYPEID |
+-----------+----------+
| 441 | mn014 |
| 223 | mn014 |
| 224 | mn014 |
| 655 | mn089 |
| 854 | mn089 |
| 449 | mn032 |
+-----------+----------+
表2:
+-----------+----------+----------+
| CODE | TAKENDTE | RTURNDTE |
+-----------+----------+----------+
| 441 | 25/08/14 | 01/01/15 |
| 223 | 25/08/14 | 03/01/15 |
| 223 | 25/08/14 | 01/02/15 |
| 223 | 25/08/14 | NULL |
| 655 | 25/08/14 | 07/01/15 |
| 854 | 25/08/14 | NULL |
| 449 | 25/08/14 | 06/01/15 |
+-----------+---------------------+
我选择了类型ID mn014的所有代码,这些代码在第二个表中不存在,或者在表2中存在的所有实例中在RTURNDTE列中不为空
使用此选项:
select t1.*
from table1 t1
where typeid = 'mn014' and
not exists (select 1
from table2 t2
where t2.code = t.code and
t2.rturndte is null
);
现在我不知道如何在最后选择一个代码
有什么想法吗?如果您想要任何单个结果,请在查询末尾添加
按兰德排序()限制1
如果要查找特定的代码值,请在查询末尾添加
和code='my code value'
。您可以限制
结果集,并按
排序列对结果集进行排序,然后再限制:
select t1.*
from table1 t1
where typeid = 'mn014' and
not exists (select 1
from table2 t2
where t2.code = t.code and
t2.rturndte is null
);
LIMIT 1
ORDER BY some_column
预期的结果是什么?