0
当前我有以下代码,第I部分和第II部分工作正常。 但是,当我尝试联盟,两个临时表,它让我给我错误消息 “未知的列'名称'在'字段列表'”,即使我已经尝试了很多时间来更改名称在临时表中提交'姓名'。错误消息:字段列表中的字段列表中的未知列
CREATE TEMPORARY TABLE IF NOT EXISTS inp_cnt AS(
SELECT a.name, count(DISTINCT ad.pub_id) AS c
FROM author AS a
INNER JOIN authored AS ad ON a.id = ad.author_id
INNER JOIN inproceedings AS inp ON ad.pub_id = inp.pub_id
WHERE inp.booktitle = "SIGMOD conference" OR inp.booktitle = "KDD" OR inp.booktitle = "VLDB"
GROUP BY ad.author_id);
CREATE TEMPORARY TABLE IF NOT EXISTS ar_cnt AS(
SELECT a.name, count(DISTINCT ad.pub_id) AS c
FROM author AS a
INNER JOIN authored AS ad ON a.id = ad.author_id
INNER JOIN article AS ar ON ad.pub_id = ar.pub_id
WHERE ar.journal = "PVLDB"
GROUP BY ad.author_id);
SELECT name,sum(c) AS total
FROM (
SELECT name,c FROM inp_cnt
UNION ALL
SELECT name, c FROM ar_cnt
) as tmp
GROUP BY name
ORDER BY total DESC
LIMIT 20;
有人可以提供一些提示吗?我得到这个错误味精,因为名称是一个特殊的关键字在SQL?
谢谢,我试过了,仍然没有工作。似乎它无法检测到查询中的所有'名称'。 – Mona 2014-10-10 13:31:22
为inp_cnt和ar_cnt表,我已经打印出来了,他们两个在结果中都有正确的名称和c。 – Mona 2014-10-10 13:32:07
@mona,尝试向'SELECT'部分添加'tmp.'别名。 – christiandev 2014-10-10 13:58:57