免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2185 | 回复: 9
打印 上一主题 下一主题

一个结果合并的语句求助 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-05-19 15:26 |只看该作者 |倒序浏览
表Table1  
book_id   user_id
   1           12345
   1           23456
   1           34567

表Table2
book_id    book_time
    1         20100312


想将下面两句检出来的结果合成一起
select count(*) from Table1 where book_id=1;
select * from Table2 where book_id=1;
即得出的结果如下
book_user_count   book_id     book_time
            3                   1          20100312

想用一个语句实现,我写成这样的,但不对
select count(A.user_id) ,B.* from Table1 A, Table2 B where A.book_id=1 and B.book_id=1;
请问谁可以指导我下该如何写这个语句,谢谢~

论坛徽章:
0
2 [报告]
发表于 2010-05-19 15:59 |只看该作者
本帖最后由 zhujinzz 于 2010-05-19 16:03 编辑

偶不是专业人事,可试试这个
mysql> select count(A.book_id) as book_user_count,B.book_id,B.boot_time
    -> from table1 as A,table2 as B
    -> where A.book_id = 1 and B.book_id = 1;
+-----------------+---------+------------+
| book_user_count | book_id | boot_time  |
+-----------------+---------+------------+
|               3 |       1 | 2010-03-12 |
+-----------------+---------+------------+
1 row in set (0.00 sec)
如果只有table2只有两列可以用select count(A.book_id) as book_user_count,B.*

论坛徽章:
0
3 [报告]
发表于 2010-05-19 16:28 |只看该作者
回复 2# zhujinzz

你好,我在我这里面试结果如下:
ERROR 1140 (42000): Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
我的MYSQL版本是5.0.22,不知道为什么会出错

论坛徽章:
8
戌狗
日期:2014-09-26 16:39:44水瓶座
日期:2014-10-10 02:06:57金牛座
日期:2014-10-11 23:04:042015亚冠之首尔
日期:2015-06-23 15:37:0015-16赛季CBA联赛之天津
日期:2016-01-22 18:58:2915-16赛季CBA联赛之佛山
日期:2016-05-31 19:18:0815-16赛季CBA联赛之同曦
日期:2016-08-10 16:26:3315-16赛季CBA联赛之辽宁
日期:2018-01-10 11:47:40
4 [报告]
发表于 2010-05-19 16:46 |只看该作者
select count(A.user_id) ,B.* from Table1 A, Table2 B where A.book_id= B.book_id;

论坛徽章:
0
5 [报告]
发表于 2010-05-19 16:54 |只看该作者
回复 4# wiliiwin


    这个不是跟我写的一个意思吗?

论坛徽章:
0
6 [报告]
发表于 2010-05-19 16:59 |只看该作者
回复 3# juffun

我在建table2的时候,将book_time弄成了boot_time,你把我那语句修改下看看,no GROUP columns这个错误提示,是不是这引起的?

论坛徽章:
0
7 [报告]
发表于 2010-05-19 17:08 |只看该作者
回复 6# zhujinzz


    还是那个错误。。。

论坛徽章:
0
8 [报告]
发表于 2010-05-20 17:35 |只看该作者
  1. create table a(
  2.      book_id int unsigned not null,
  3.      user_id  int unsigned not null
  4. );
  5. insert into a (book_id, user_id) values (1,12345),(1,23456),(1,34567);
  6. create table b(
  7.     book_id int unsigned not null,
  8.     book_time int unsigned not null
  9. );
  10. insert into b(book_id, book_time) values (1,1111222);

  11. select count(*), a.book_id, b.book_time from a left join b on b.book_id=a.book_id group by b.book_time;
复制代码
+----------+----------+-----------+
| count(*) | book_id | book_time |
+----------+----------+-----------+
|        3 |        1 |    222222 |
+----------+----------+-----------+

论坛徽章:
0
9 [报告]
发表于 2010-05-21 11:01 |只看该作者
回复 8# jimnopq


    多谢啦,我去研究下这个语法,同时谢谢大家了

论坛徽章:
0
10 [报告]
发表于 2010-05-21 23:23 |只看该作者
这个语法不太 通
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP