需求:
有20张表,每张表都有一个学生姓名字段,在每个表中,每个学生姓名可能有多条数据。现在我要在一个网页上显示某个学生名字在这20张表中信息出现的次数。
如果我拿着姓名分别去查20张表,那么一个学生就需要执行20次数据库查询,如果每个页面显示50个学生信息,也就是说要执行1000次的查询。这样效率太低,所以请各位大神支支招,有没什么好的办法。

解决方案 »

  1.   

     部分同意这种观点,因为没有具体需求也不能说就一定是不合理这个方法你试一下 
    SELECT TABTYPE,XM COUNT(1) FROM 
    (
      (SELECT 'T1' TABTYPE,T1.XM XM FROM T1,S WHERE T1.XM=S.XM) UNION ALL
      (SELECT 'T2' TABTYPE,T2.XM XM FROM T2,S WHERE T2.XM=S.XM) UNION ALL
      (SELECT 'T3' TABTYPE,T3.XM XM FROM T3,S WHERE T3.XM=S.XM) UNION ALL
      ...
    )
    GROUP BY TABTYPE,XM
      

  2.   

    少个逗号 SELECT TABTYPE,XM, COUNT(1) FROM 
      

  3.   

    少个逗号 SELECT TABTYPE,XM, COUNT(1) FROM 
    非常感谢,的确比原来快上好几倍。