问题描述
- sql查询时select id,*无法查询
-
select id,* from table;-- 这句sql是错误的;
select id,a.* from table a ;--这句就可以执行;
为啥给表设置了别名之后就可以了?
解决方案
或许这就是思想,先记住,慢慢就理解了。
解决方案二:
代表的是全部,id+等于重复了,而起别名就可以避免这个计算机认为重复的情况
解决方案三:
代表全部字段,id字段也被包含在里
解决方案四:
我觉得是这样的,第一个错误本身语法就是有问题,星号里面就包含id了,肯定不对;第二个对的原因是因为sql的别名机制可能是又新建(模拟)了另一个表,只不过数据都是一样的,所以差两个表就是没有问题的,个人理解,仅供参考
解决方案五:
加了别名会被认为是两个id,虽然他们都指的同一个,不加的话星号已经包含全部了
解决方案六:
先说第一个:select * from table
当select后面只有*时,其代表后面表的所有字段;
但若是有其它字段,*代表就没有意义了。
第二个:select ID,a.* from table a;
并不说要给表命一个临时表名才能使用a.*
select ID,table.* from table ;也是可以的
他代表了table表的所有字段。
解决方案七:
第一个*与ID冲突,所以不行。
第二个给表取了个别名,相当于另建了个一模一样的表,冲突不存在。
解决方案八:
SQL (select查询)
时间: 2024-11-03 15:22:35