2 qq 30244387 qq_30244387 于 2016.04.28 17:00 提问

sql查询时select id,*无法查询

select id,* from table;-- 这句sql是错误的;
select id,a.* from table a ;--这句就可以执行;
为啥给表设置了别名之后就可以了?

8个回答

renwuqiangg
renwuqiangg   2016.04.28 17:05

或许这就是思想,先记住,慢慢就理解了。

tiger_nana
tiger_nana   2016.04.28 17:28

代表的是全部,id+等于重复了,而起别名就可以避免这个计算机认为重复的情况

qq_17163785
qq_17163785   2016.04.28 17:35

代表全部字段,id字段也被包含在

qq_32224861
qq_32224861   2016.04.28 17:37

我觉得是这样的,第一个错误本身语法就是有问题,星号里面就包含id了,肯定不对;第二个对的原因是因为sql的别名机制可能是又新建(模拟)了另一个表,只不过数据都是一样的,所以差两个表就是没有问题的,个人理解,仅供参考

donggua3694857
donggua3694857   Rxr 2016.04.28 17:47

加了别名会被认为是两个id,虽然他们都指的同一个,不加的话星号已经包含全部了

baidu_32688757
baidu_32688757   2016.04.28 20:18

先说第一个:select * from table
当select后面只有*时,其代表后面表的所有字段;
但若是有其它字段,*代表就没有意义了。

第二个:select ID,a.* from table a;
并不说要给表命一个临时表名才能使用a.*
select ID,table.* from table ;也是可以的
他代表了table表的所有字段。

u012721519
u012721519   2016.04.29 00:08

第一个*与ID冲突,所以不行。
第二个给表取了个别名,相当于另建了个一模一样的表,冲突不存在。

CSDNXIAOD
CSDNXIAOD   2016.05.03 01:50

SQL (select查询)
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!