首页 > 解决方案 > 选择和更新与连接给出不同的记录

问题描述

我有两个有关系的表

分配表中有一个字段是状态。所以我从表分配中获取记录,其中状态是complete返回6909 records

比我使用内部连接返回记录的状态条件complete也返回6909记录。

但是当我使用连接更新表时,更新6625记录的条件相同6909。查询或其他有什么问题吗?请指导

查询:

第一:返回6909条记录

SELECT * FROM [ITSC].[dbo].[assignment] where assignment_status = 'Completed' 

第二:返回6909条记录

SELECT tickets.ticket_submitted_by , tickets.ticket_type , tickets.ticket_open_date , tickets.ticket_priority , tickets.ticket_description , assignment.staff_name,assignment.assigned_time_start,assignment.assigned_time_end,assignment.assignment_status
from tickets 
inner join 
assignment 
on tickets.ticket_id = assignment.ticket_id
where assignment.assignment_status = 'Completed'

第三:更新6625条记录而不是6909条

 update tickets set tickets.ticket_close_date = '2015-04-29' 
,tickets.ticket_close_time = '2015-04-29 09:25:40.670' from tickets
 inner join assignment
 on tickets.ticket_id = assignment.ticket_id
 where assignment.assignment_status = 'Completed'

标签: sqlsql-serverdatabasejoininner-join

解决方案


你能试试这个查询吗

 update tickets set tickets.ticket_close_date = '2015-04-29' 
                    ,tickets.ticket_close_time = '2015-04-29 09:25:40.670' 
    from assignment
    where  tickets.ticket_id = assignment.ticket_id
    and  assignment.assignment_status = 'Completed'

推荐阅读