我要查询一个问题列表(tb_question) 并且把问题的所有答案数显示出来。下面是我写的sql,但是我感觉效率应该是比较差的,我想不到有什么效率高的方法,请大家帮帮我
SELECT *,(select count(*) from tb_answer where qid = q.id) as answerCount FROM tb_question q LIMIT 0,20

解决方案 »

  1.   

    select *,(select count(*) from tb_answer where qid = q.id) as answerCount 
    from (select * from tb_question LIMIT 0,20) q 
      

  2.   

    为毛版主要这样写,这样不是又平白的多了一条sql吗?
      

  3.   

    可以改下:
    SELECT A.*, count(B.*)  as answerCount FROM tb_question A, tb_answer B where qid = q.id