2012-06-29 34 views
-2

这是我更早问一个问题的更新第2部分。我试图做出以下更新,但这个查询实际上并没有做任何事情。sql更新与多连接子选择多行

UPDATE u 
SET  graduation_class_id = gc.graduation_class_id 
FROM [user] u 
JOIN graduation_class gc 
ON  u.graduation_class_id = gc.graduation_class_id 
JOIN graduation_term gt 
ON  gt.graduation_year_id = gc.graduation_year_id 

TABLE SCHEMA 
**user 
user_id 
graduation_class_id 

**graduation_class 
graduation_class_id 
graduation_year_id 

**graduation_term 
graduation_term_id 
graduation_year_id 

目标是获得匹配graduation_class_id值到用户表中。我被告知这是行不通的,因为除非用户已经有了匹配的graduation_class_id,否则不会找到匹配。这是一个问题,因为我试图在其中获得正确的一个!

回答

2

这个想法从根本上注定要失败。尽管SQL服务器没有提供关于哪个毕业班应该链接到用户的信息,但您试图让SQL服务器自己将毕业班级链接到用户。除非你在某个地方(用户,毕业典礼,某些其他表格)有一些数据将用户标识链接到毕业学期,班级或年份(或者手动告诉SQL哪些数据匹配),SQL不能神奇地做到这一点为你工作。

+0

是的,我已经意识到了这个问题。谢谢您的帮助! –

+0

没问题。祝好运编码。 – Palladium