select * from test2,(select  rid   from   test1   group   by   rid   having   count(*)=3)  这种写法报错,我的想法是要联合查询test2表和
select  rid   from   test1   group   by   rid   having   count(*)=3    这个数据集
怎么写才不会报错

解决方案 »

  1.   

    报什么错呢?你那个*至少要指明是哪个表吧。test2.*或数据集的*  。
      

  2.   


    select * from test2,(select count(*) num from (select rid from test1 group by rid) aa
    having num = 3)
      

  3.   

    test2表和
    select rid from test1 group by rid having count(*)=3 这个数据集有关系没?
      

  4.   

    select 表前缀.字段 from 表1, 表2你那个(select rid from test1 group by rid having count(*)=3)返回的是什么,你把表关系说下,例如关联字段
      

  5.   


    select rid from test1 group by rid having count(*)=3这句sql有可能返回多条记录,所有联合查询会报错
      

  6.   

    子查询 (select rid from test1 group by rid having count(*)=3) 需要有别名select * from test2,(select rid from test1 group by rid having count(*)=3) t既然是两个表,就应该有连接条件。
    否则将返回两表的笛卡尔积,非常巨大的