日期:2014-05-16  浏览次数:20504 次

单个子查询返回多行

今天写视图时老是提示单个子查询返回多行,sql语句类似:

select (select b.name from table2 b?where b.id=id) name from table1

因为id是table2的主键,所以不应该返回多行。但是数据库每次都是如此提示,后来仔细思考才恍然大悟,修改后的sql如下:

select (select b.name from table2 b?where b.id=a.id) name?from table1 a

子查询中的表中有个字段和外面的表字段名相同,那么在子查询中默认是引用子查询表中的字段。这种情况需要加上外面表的表名或别名。