gpt4 book ai didi

sql - 来自内部连接表的“SELECT *”

转载 作者:行者123 更新时间:2023-12-04 02:44:04 26 4
gpt4 key购买 nike

如何在不与公共(public)字段冲突的情况下选择两个连接表的所有字段?

假设我有两个表,ProductsServices。我想做这样的查询:

SELECT Products.*, Services.* 
FROM Products
INNER JOIN Services ON Products.IdService = Services.IdService

这个查询的问题是 IdService 会出现两次并导致一堆问题。

到目前为止,我发现的替代方法是区分 Products 中的每个字段,IdService 字段除外。但这样一来,每次向 Products 添加新字段时,我都必须更新查询。

有更好的方法吗?

最佳答案

What are the most common SQL anti-patterns?

您遇到了反模式#1。

更好的方法是提供一个字段列表。获取快速字段列表的一种方法是

sp_help tablename

如果你想从这个查询中创建一个 View ——使用 select * 会给你带来更多麻烦。 SQL Server 在创建 View 时捕获列列表。如果您编辑基础表并且不重新创建 View - 您正在注册麻烦(我遇到了这种性质的生产火灾 - 尽管 View 是针对不同数据库中的表)。

关于sql - 来自内部连接表的“SELECT *”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/877928/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com