如何检查子查询输出的详细信息?
我有一个这样的查询:
UPDATE t3
SET somevalue = (SELECT t2.id
FROM table1 t1
JOIN table2 t2
ON t1.fk_table2_id = t2.id
WHERE t3.id = t1.fk_table3_id)
FROM table3 t3
子查询SELECT t2.id FROM table1 t1 JOIN table2 t2 ...在我的SQL Server 20008 DB中的某个位置返回2个以上的值。有没有一种简单的方法可以找出失败的地方?或者是否有另一种方法可以使用另一个表中的值更新一个表中的列?
提前致谢
I have a query like this:
UPDATE t3
SET somevalue = (SELECT t2.id
FROM table1 t1
JOIN table2 t2
ON t1.fk_table2_id = t2.id
WHERE t3.id = t1.fk_table3_id)
FROM table3 t3
The subquery SELECT t2.id FROM table1 t1 JOIN table2 t2 ... returns 2+ values at some place in my SQL Server 20008 DB. Is there an easy way to figure out where it fails? Or is there another way to update a column in one table with values from another?
Thanks in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
假设 ts.id 是唯一的,您可以找出它返回多于 1 行的位置,使用 SELECT(如果 t1.fk_table3_id 则从查询中省略
table3
确实是一个外键约束):Assuming
ts.id
is unique, you can find out where its returning more then 1 row, use a SELECT (omit thetable3
from the query ift1.fk_table3_id
really is a foreign key constraint):