我有一个SQL查询(与MS Access和C#一起使用),在where子句中引用带有列的表名,这会导致错误。当我删除表名时,它工作正常,但看起来如果你更具体,它会更好吗?
任何人都有任何想法,为什么会这样?
有问题的SQL查询:
SELECT profiles.profile_id,
profiles.full_name,
shifts.start,
shifts.stop,
shifts.start_log,
shifts.stop_log,
shifts.start_notes,
shifts.stop_notes
FROM shifts,
profiles
WHERE profile.full_name=@full_name AND
shifts.profile_id=profiles.profile_id;
我必须将WHERE子句中的"profile.full_name=@full_name"
更改为"full_name=@full_name"
,即删除表名"profile"
。
这个问题来自另一个SO问题here
答案 0 :(得分:0)
您的查询从名为profiles
的表中提取信息,因此未定义profile.full_name
,因为查询中没有名为profile
的表(或别名)。 profiles.full_name
可能会更好。