找回密码
 立即注册

QQ登录

只需一步,快速开始

西瓜

注册会员

15

主题

55

帖子

152

积分

注册会员

积分
152

[已处理] 7.0视图

西瓜
注册会员   /  发表于:2022-10-24 16:25  /   查看:1627  /  回复:8
10金币
请问一下为什么这个语句在SQL上面能跑。。在活字格里面跑不了呢?我知道大概原因。是两张表里面都有ID这个字段。冲突了。我猜得对不?请大腿们指教。。我要想把两张表完整的拼起来。怎么处理呢?
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

你的需求按你的写法是可以的 select a.*,b.id id2 from a join b on a.id=b.id 视图你可以看做是一个虚拟的表,不能有相同的列名,所以我把id分别命名为 id1 id2 只要查询结果没有重复列名,就不需要在重新指定列名

8 个回复

倒序浏览
最佳答案
最佳答案
Syl悬赏达人认证
论坛元老   /  发表于:2022-10-24 16:25:05
来自 5#
本帖最后由 Syl 于 2022-10-24 17:32 编辑
西瓜 发表于 2022-10-24 16:53
但是我想要A表的所有字段啊。。B表我只要一个。。
SELECT  RS人员基础档案.*,RS职称类别.级别 FROM RS人 ...

你的需求按你的写法是可以的 select  a.*,b.id id2 from a join b on a.id=b.id

视图你可以看做是一个虚拟的表,不能有相同的列名,所以我把id分别命名为 id1  id2

只要查询结果没有重复列名,就不需要在重新指定列名

回复 使用道具 举报
Syl悬赏达人认证
论坛元老   /  发表于:2022-10-24 16:33:26
2#
别用* ,用这个出来所有列名,重复的视图不认
可以select 后面加列名(同名的用 table.列名 空格后指定一个新列名)

比如  

SELECT A.ID ID1 ,B.ID ID2   FROM A JOIN B ON A.ID=B.ID

评分

参与人数 1金币 +5 收起 理由
Joe.xu + 5 很给力!

查看全部评分

回复 使用道具 举报
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2022-10-24 16:35:43
3#
应该是这样,两个表中字段名一样,然后您又 select  * 了,
我跟楼上看法差不多,不推荐* ,建议直接写字段
回复 使用道具 举报
西瓜
注册会员   /  发表于:2022-10-24 16:53:19
4#
Syl 发表于 2022-10-24 16:33
别用* ,用这个出来所有列名,重复的视图不认
可以select 后面加列名(同名的用 table.列名 空格后指定一 ...

但是我想要A表的所有字段啊。。B表我只要一个。。
SELECT  RS人员基础档案.*,RS职称类别.级别 FROM RS人员基础档案  left join RS职称类别  on RS人员基础档案.技术职称=RS职称类别.名称;
我发现这样可以。。。
请问大神。。,这样的话。。您说的“重复的视图不认”这句话我理解不了。。能请大腿解释一下么?
回复 使用道具 举报
Lay.Li悬赏达人认证 活字格认证
超级版主   /  发表于:2022-10-24 17:56:15
6#
感谢各位大佬的支持~
大佬的意思应该是每张表中都有名为id的这一个字段,如果用*的话是会将同名的id列取出来的,就会出错
回复 使用道具 举报
西瓜
注册会员   /  发表于:2022-10-24 18:59:04
7#
西瓜 发表于 2022-10-24 16:53
但是我想要A表的所有字段啊。。B表我只要一个。。
SELECT  RS人员基础档案.*,RS职称类别.级别 FROM RS人 ...

谢谢大腿!
回复 使用道具 举报
西瓜
注册会员   /  发表于:2022-10-24 19:01:44
8#
Lay.Li 发表于 2022-10-24 17:56
感谢各位大佬的支持~
大佬的意思应该是每张表中都有名为id的这一个字段,如果用*的话是会将同名的id列取出 ...

谢谢版主!
回复 使用道具 举报
Lay.Li悬赏达人认证 活字格认证
超级版主   /  发表于:2022-10-25 09:05:17
9#
不客气哈~
后边有问题欢迎继续发帖交流
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部