sql数据库中,多表查询时,是否有语句可以查询除了某个字段以外的所有字段?

发布于 2022-09-06 19:29:32 字数 442 浏览 22 评论 0

clipboard.png

这么写sql语句的话,会导致id出现两次,想问下有没有个语句可以排除掉第二次的id1?
比如说select *,not(tt.id) from tt INNER JOIN test1 on tt.id=test1.id(我编的),这种意思的语句?

我知道有一个是可以实现 就是
select tt.id,tt.is_deleted,test1.name from tt INNER JOIN test1 on tt.id=test1.id
但是这是字段少的时候,如果字段多,写起来就会很复杂。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

岁月静好 2022-09-13 19:29:32
DECLARE @Except VARCHAR(1000)

SET @Except=''

SELECT @Except=@Except+','+NAME FROM SYSCOLUMNS WHERE ID=OBJECT_Id('你的表名') AND NAME<>'你要排除的字段'

SET @Except=STUFF(@Except,1,1,'')

EXEC('SELECT '+@Except+' FROM 你的表名')

--只需将三个地方分别替换为你的表名和字段就行了

这是我原测试表查询结果:
图片描述

这是排除Id这一列后的查询结果:
图片描述

成功将Id列排除

め可乐爱微笑 2022-09-13 19:29:32

select tt.*,test1.name from tt inner join test1 on tt.id=test1.id图片描述

北笙凉宸 2022-09-13 19:29:32

最简单的办法就是,对这两张表建立一个视图表,建视图时选择必要的字段信息。然后查询就直接查询视图了,很好的避免了你遇到的这种问题。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文