代码改变世界

没有为第 2 列(属于 'b')指定列

2009-12-16 10:14  cnb_mtime  阅读(1025)  评论(0编辑  收藏  举报

这个问题,让我郁闷了半天。

问题是这样的,我要求出所有部门所发布的文章数;
每个文章都会属于一个部门;部门id的列名是dep_id;

SQL语句如下
select dep_id,count(*) from article group by dep_id

意思很简单,按部门Id,分组计算;输出结果
dep_id      
----------- -----------
69             88
92             85
115            29
138            31
77             74
107            45
85             88
62             86
146            29

注意,第一个数据列名称是dep_id,第二个数据列没有名称;这也很正常,对吧(问题就出在这里),先不说它;

然后呢,我要知道哪个dep_id对应哪个部门名称,自然要用一个外联接,部门表名为depart;

SQL语句如下:
select * from depart as a
left join
(select dep_id,count(*) from article where art_atit!='' group by dep_id) as b
on a.dep_id=b.dep_id

上面的语句看样子是没有问题;左外接联接,联接一个查询结果b;结果一执行,报错了,错误信息: