记录一下菜鸟在工作中遇到的问题。
问题:
创建视图的查询语句中包含子查询导致创建视图失败。
解决方法:
将子查询单独建表,然后把创建视图中的子查询语句替换成表。
(就这?就解决了?!!简直不要太 easy)
详细过程(哔哔赖赖过程):需要从mysql数据库中创建一张视图,查询语句需要联结表多张表,查询语句如下(精简后,保留其精髓哈哈):
select a.id,b.name from a left join (select ip,name from c) b on a.id = b.ip
在此实际情况中,如果把b表作为主表是可以避免使用子查询的,但数据量是否正确就无法保证了。因此,为保证数据量正确,必须a做主表,也就绕不开使用子查询了。
将子查询语句单独建表
create table b as select ip,name from c;
然后再联结
select a.id,b.name from a left join b on a.id = b.ip
经过以上的简单操作逻辑就解决问题了~
可能我有强迫症,总感觉一个查询就能得到需要的结果,然后顺理成章的创建视图,可偏偏被这子查询迫害到多出一张表,可恶。。。不知道有没有别的更好的解决方法,待我发现后再来更新。
菜鸟加油!!!