查询结果都一样的,没有区别。
不过第一个的运行效率是比较高。数据量少的时候看不出区别,当遇见电信,银行这种上千万的大数据量的数据库的时候,两者的区别就很明显了,查询速度能相差好几分钟。所以写程序的时候都使用第一种。
至于为什么第一个快就涉及到SQL语句执行效率等一系列问题了,是一门学科,需要专门学习,单就这两个语句来讲, 在where条件后面写select语句的执行效率是非常差的。
结果不一样。
第一个是双表外联合查询,会有冗余项目甚至空项目出现,具体参考“SQL 联合查询”
第二个是单表复合查询,不会出现超出SPJ表的冗余条目。
第二个语句效率和实现更好。
好像只要你那个'红'和'红色'没有问题就应该是一样的