我有一个关于插入临时表的查询。我正在从一个表中查找记录> 2具体标准。
Temp_Table
R1 - ScheduleID - Count(table b.scheduleid) =2 - orderid
1 1 2 1
R2 - ScheduleID - Count(table b.scheduleid) =2 - orderid
2 2 2 2
表B
R1 - Order ID - ScheduleID
1 1 1
R2 - Order Id - ScheduleID
2 2 2
我想要什么
R1 - ScheduleID - Count(table b.scheduleid) =2 - orderid
1 1 2 1
R2 - ScheduleID - Count(table b.scheduleid) =2 - orderid
2 1 2 2
R3 - ScheduleID - Count(table b.scheduleid) =2 - orderid
3 2 2 3
R4 - ScheduleID - Count(table b.scheduleid) =2 - orderid
4 2 2 4
代码
Update Temp_Table a
right outer join table b
on a.id = b.id
Set orderid=b.id (Here I am setting the column in the temp table = to the matching PK from tableb
Where (extra conditions go here)
上面的代码显示我有一个临时表,其中包含表b中此计划ID的计数为>的计划ID。 1.我现在想在临时表中添加表b中与列调度ID匹配的订单ID。
对于临时表中的每条记录,表b中有2条记录,因为计数是> 2.我遇到的问题是我添加到临时表中以显示表b中的订单ID的列只显示匹配的订单ID之一,而不是两者。
非常感谢。
答案 0 :(得分:1)
我怀疑你想要这样的东西:
Update Temp_Table a join
(select b.id
from table b
where (extra conditions go here)
group by b.id
having count(*) > 2
) b
on a.id = b.id
Set newcolumnintemptable = b.id;
一些注意事项:
a
,那么right outer join
没有意义。您需要匹配才能进行更新。b.id
确实是主键,那么就没有匹配项,因为这些ID是唯一的。