SQL Server中的列名称不明确
] 这一直给我错误信息,我试图使两个typeID相等,但仍然没有结果SQL Server中的列名称不明确,sql,sql-server,tsql,Sql,Sql Server,Tsql,] 这一直给我错误信息,我试图使两个typeID相等,但仍然没有结果 创建视图平面视图 选择p.planID、p.planName、p.cost、p.quota、p.maxSpeed、p.shapedSpeed、a.typeID、a.typeName 从计划作为p左外部联接访问类型作为 p.typeID=a.typeID; 转到 创建视图平面视图 选择p.planID、p.planName、p.cost、p.quota、p.maxSpeed、p.shapedSpeed、a.typeID、a.ty
创建视图平面视图
选择p.planID、p.planName、p.cost、p.quota、p.maxSpeed、p.shapedSpeed、a.typeID、a.typeName
从计划作为p左外部联接访问类型作为
p.typeID=a.typeID;
转到
创建视图平面视图
选择p.planID、p.planName、p.cost、p.quota、p.maxSpeed、p.shapedSpeed、a.typeID、a.typeName
从计划作为p左外部联接访问类型作为
p.typeID=a.typeID;
转到
您的表中有一个公共列。这对于SQL Server是不明确的,因为它不知道此列属于哪个表
例如,如果您在plan
和accessType
表中都有cost
,那么它会对应该返回什么感到困惑-plan.cost
或accessType.cost
解决方案:
转到您的选择
行
SELECT planID, planName, cost, quota, maxSpeed, shapedSpeed, typeID, typeName
并使用
运算符指定表的名称
我想问题来自于
typeID
在“选择原因”中,您使用了
左外部联接
so,两个表中的typeID的值并不总是相同的。您的表中有一个公共列。这对于SQL Server是不明确的,因为它不知道此列属于哪个表
例如,如果您在plan
和accessType
表中都有cost
,那么它会对应该返回什么感到困惑-plan.cost
或accessType.cost
解决方案:
转到您的选择
行
SELECT planID, planName, cost, quota, maxSpeed, shapedSpeed, typeID, typeName
并使用
运算符指定表的名称
我想问题来自于
typeID
在“选择原因”中,您使用了左外部联接
so,两个表中的typeID的值并不总是相同的。您可以这样写:
CREATE VIEW planView
SELECT
planID, planName, cost, quota, maxSpeed, shapedSpeed, a.typeID, typeName
FROM
Plans AS p
LEFT OUTER JOIN
accessType AS a ON p.typeID = a.typeID;
GO
你可以这样写:
CREATE VIEW planView
SELECT
planID, planName, cost, quota, maxSpeed, shapedSpeed, a.typeID, typeName
FROM
Plans AS p
LEFT OUTER JOIN
accessType AS a ON p.typeID = a.typeID;
GO
您应该明确说明要从哪个表中选择列。例如,选择p.typeID,
这里的typeID列就是问题所在。这两个表都包含typeidYou应该明确说明从哪个表中选择列。例如,选择p.typeID,
这里的typeID列就是问题所在。两个表都包含类型ID我们不知道哪个字段属于哪个tableType ID是accessType的主键,而FK是Plans的主键。您的解决方案有效,非常感谢。很乐意帮助。别忘了接受这个答案@ggwp我们不知道哪个字段属于哪个tableType ID是accessType的主键,而FK是plan的主键。您的解决方案有效,非常感谢。很乐意帮助。别忘了接受这个答案@ggwp