所以假设我有此查询使SQL子查询不停抱怨重复列
SELECT COUNT(*) FROM (SELECT * FROM k JOIN j ON k.id = j.aid) k
假设K和J具有相同名称的两列,这样整个查询将与重复列错误抱怨....
而简单地执行SELECT * FROM k JOIN j ON k.id = j.aid
将执行,尽管重复列就好了....
我知道,你可以使用子查询用来指定重复的情况下要使用的列,但有什么办法指定该查询以便它自动地为特定的列(无论是随机的还是使用任何规则)映射以便在重复的情况下使用,而不必手动指定它们?
ie即使没有修改子查询(SELECT * FROM k etc),只修改superquery(SELECT COUNT(*)FROM ...)并使其尽可能抽象,这样它就可以工作,而不管什么子查询
我同意@JoeStefanelli。这不是使用'SELECT *'的最佳实践之一 - 即使有时候你需要所有的列。但是,在手边的事情要注意..你有没有试过'SELECT COUNT(1)。 ..'?你在列模糊不清中遇到错误的一个原因是,当你将子查询包含在表中时,你有点触发了规则的执行。类似于我们在创建新表格时不能添加两个同名的列。我不知道如何让你的查询不会像当前构建的那样抛出错误。 – Nonym