2010-03-17 73 views
4

我正在更新我们的数据库,并想要更新没有在另一个表中的现有项目的行。我可以一起加入表格,但是无法将表格分组以获得行数SQL Server更新与左连接和组通过

UPDATE dpt 
SET dpt.active = 0 
FROM DEPARTMENT dpt 
LEFT JOIN DOCUMENTS doc on dpt.ID = doc.DepartmentID 
GROUP BY dpt.ID 
HAVING COUNT(doc.ID) = 0 

我该怎么做?

回答

5

用途:

UPDATE DEPARTMENT 
    SET active = 0 
WHERE NOT EXISTS(SELECT NULL 
        FROM DOCUMENTS doc 
        WHERE doc.departmentid = id) 
+0

格拉西亚斯高级... – 2010-03-17 18:01:35

+0

@Marty Trenouth打我:德虚无缥缈 – 2010-03-17 18:05:32

+1

我敢肯定这应该是Señor......除非你试图暗示OMG Ponies已经老了!大声笑 – Leslie 2010-03-17 20:57:43

4
UPDATE department 
SET  active = 0 
WHERE id NOT IN 
     (
     SELECT departmentId 
     FROM doc 
     ) 
+0

+1:12秒,啧... – 2010-03-17 17:57:12