2012-10-12 97 views
1

我得到的表结构如下MySQL查询获得价值

 
-------------------------------- 
id processId newId  value 
-------------------------------- 
1  1  1   a 
2  1  2   b 
3  1  4   c 
4  2  5   d 
-------------------------------- 

 
------------------------ 
id processId mapnewId 
------------------------ 
1  1  1 
2  1  2 
------------------------ 

我应该怎么得到值“Ç”(这意味着我应该得到的值它没有被映射到第二个表中的“”)。

回答

1

这里是单个记录

Select 
    t1.processId, 
    t1.newId, 
    t1.value, 
    t2.processId, 
    t2.mapnewId 
FROM t1 
LEFT JOIN t2 
ON t1.processId = t2.processId and t1.newId = t2.mapnewId 
where t1.processId = 1 and t2.processId is null 
0

由于按照我的理解,你正在寻找一些查询将返回未在第二个表明镜行.. 如果这很好,那么“除”操作将帮助你用相同的:

SQL EXCEPT子句/运算符用于组合两个SELECT语句,并返回第一个SELECT语句中不由第二个SELECT语句返回的行。这意味着EXCEPT只返回在第二个SELECT语句中不可用的行。

请参考:http://www.tutorialspoint.com/sql/sql-except-clause.htm

+0

答案'EXCEPT'可以帮助这里。除了MySQL不支持。 –