数据库用的是 mysql表1 table1
nameid  name
 1      张三
 2      王二
 3      李四
表2 table2
id     name
1     张三,李四,王二
2     王二,赵五
3     张三,王二求助:统计表1里 name字段里的数据 在表2里出现的次数,并得到如下结果
nameid   name  namecount
1         张三       2
2         王二       3
3         李四       1请把完整的查询语句写出来。 表结构已经固定了,不能再修改了。
而且只能用使用与mysql相关的sql查询语句 

解决方案 »

  1.   

    select *,(select count(*) from t2 where find_in_set(a.name,b.name)>0) from t1 a
      

  2.   

    select *,(select count(*) from t2 b where find_in_set(a.name,b.name)>0)
    as total from t1 a
      

  3.   

    or
    select a.nameid,a.name,count(b.id)
    from t1 a left join t2 b on  find_in_set(a.name,b.name)>0
    group by a.nameid,a.name
      

  4.   

    select a.*,count(1) namecount from table1 a ,table2 b where instr(b.name,a.name)>0 group by a.nameid,a.name;
    +--------+--------+-----------+
    | nameid | name   | namecount |
    +--------+--------+-----------+
    |      1 | 张三   |         2 |
    |      2 | 王二   |         3 |
    |      3 | 李四   |         1 |
    +--------+--------+-----------+
      

  5.   

    晕死,还是没对啊 大神些 我查出来有问题 
    比如 表1里有个 
    nameid   name
    5        张三疯 
    在表2里出现了8次 
    按照4楼的查询结果统计把张三疯出现的8次加到 张三上去了,却得到了下面的结果 +--------+--------+-----------+
    | nameid | name   | namecount |
    +--------+--------+-----------+
    |      1 | 张三   |        10 |
    |      2 | 王二   |         3 |
    |      3 | 李四   |         1 |
    +--------+--------+-----------+