2012-10-12 142 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不支持。 –