2011-04-21 50 views
0

中没有对应的记录,我使用的是MySQL数据库和我的表结构,如:如何获取mysql中

+---------------+----------------+-------------------+ 
| leave_type_id | leave_type  | leave_type_org_id | 
+---------------+----------------+-------------------+ 
|   23 | Casual Leave |    33 | 
|   24 | Earn Leave  |     0 | 
|   33 | Sick Leave  |     0 | 
|   34 | CL Leave  |     0 | 
|   35 | PL LEAVE  |    23 | 
|   42 | EL LEAVE  |     0 | 
+---------------+----------------+-------------------+ 

,我想只获取从我的表leave_type中没有对应的记录,它的意思是leave_type_id不存在于像(24,34,35,42)plz这样的leave_type_org_id内,请尽快向我发送查询。 谢谢。

+0

这是不正确的格式化,和畸形的问题。你可以用“代码”标签格式化,以便我们可以阅读这个? – ohmusama 2011-04-21 07:50:16

+0

嘿,我不知道如何格式化堆栈流可以给我的提示plz – subodh 2011-04-21 07:57:38

回答

2

你可以做在同一个表加入这样

select t1.* 
from table t1 
left join table t2 
on t1.leave_type= t2.leave_type_org_id 
where t2.leave_type_org_id is null 

OR

随着子查询

select * from table 
where leave_type_id not in 
(
    select leave_type_org_id from table 
) 
+0

嘿巴迪我没有多个表是单个表,所以我们不需要在这里申请加入。 – subodh 2011-04-21 07:58:35

+0

@subodh:连接可以应用在单个表上,在上面的查询中只有单个表。上述条件要么需要连接要么子查询。尝试以上查询 – 2011-04-21 08:00:24

+0

嘿,我不知道为什么上面的查询不工作,但在子查询的地方,如果我把任何静态值,那么它会正常工作。还有一个一个的查询工作正常。 – subodh 2011-04-21 08:15:34