1

我得到的表结构如下

--------------------------------
id processId newId 值
--------------------------------
1 1 1 一个
2 1 2 乙
3 1 4 厘米
4 2 5 天
--------------------------------

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

我应该如何从 id 映射的表中获取值“ c ”(这意味着我应该获取第二个表中未映射到“ 1 ”的值)。

4

2 回答 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
于 2012-10-12T06:23:15.537 回答
0

根据我的理解,您正在寻找一些查询,它将返回第二个表中不 der 的行。如果没问题,那么“Except”操作将帮助您:

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

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

于 2012-10-12T05:32:02.940 回答