sql中的别名问题。sql高手来,高分等待你来解答

来源:百度知道 编辑:UC知道 时间:2024/05/21 13:59:21
我的数据表是这样的
表user:
_________________________________
id name password date

2 abc 123456
_________________________________

表 space
---------------------------------
id name userid

1 我的空间 2
_________________________________

现在我想把user2在两个表中的数据全部提取出来。
$mysql=mysql_fetch("select s.*,u.* from space s,user u where s.userid=u.id");
这样得到了一个结果集数组。
但是在这种数组中我不知道怎么样分辨哪个是space的name,哪个是user的name。
请问:
如果使用别名可以解决这个问题。
注意:
数据库不能修改。
不要告诉我使用数组[2]这样的方法。我想要可以解决问题的sql语句。或者其他好的方法。
不要贴那些什么是sql,sql的常用查询解释 这样的复制粘贴。
我测试成功之后会追加分数50
楼一的办法我知道。但是数据库是不能修改的。如果可以修改我就不发这个帖子了

你为什么这么喜欢用系统关键字作为表名通过你的表结构我可以得到从space表的userid字段定义到用户
由于你的表结构可读性差把自己都弄糊涂了

由于你的两个表的一部分字段名是相同的,因此你想到使用别名(这个麻烦是你自己找的,由于你的表字段设计不合理,再说使用*性能浪费,因为你并不需要所有的列),你的sql有问题,对于关键字需要用[]括起来

select s.*,u.* from [space] s,[user] u where s.userid=u.id

sql问题解决,目前只剩下别名的问题

我给你几个小例子,如何使用别名

select 这是生成列名的一种方法='Test'

select 'Test' 这是生成列名的一种方法

你把Test替换为你的列名就可以了当然两个''也要去掉

--你要知道告诉你原理比告诉你答案要累的多!

字段名改下撒 user中的name 改成u_name ;表space中的name 改成s_name

解决这个问题 一般提倡把所有所要显示的列都列出来。
select s.id,s.name as s_name,s.password,s.date,u.name as u_name u.userid from space s,user u where s.userid=u.id
这样除可以区分相同列名的列外。还可以消除重复的列。比如 s.id合u.id

$mysql=mysql_fetch("select s.id S_id,s.name S_name,s.date S_date,s.ipassward S_password,u.name u_name from space s,user u where s.userid=u.id");

学习了,去试试.