簡體   English   中英

如何編寫這個 mysql 查詢?

[英]How to write this mysql query?

我有三個表 tb_poll,tb_poll_answer,tb_poll_votes

tb_pollid,question

tb_poll_answerid,poll_id,answer

tb_poll_votesid,poll_answer_id

我想 select 回答所有問題(計票)。

最后我想列出

Id    Question           Answers

1     Which is....?     1.PHP(70) 2.ASP(30) 3.JSP(2)

2     ......             .......   

如何在這里編寫最好的 mysql 查詢?

現在試試這個查詢:

 SELECT q.id,q.question,
       GROUP_CONCAT(CONCAT(a.id,'.',a.answer,COUNT(v.id) SEPARATOR ' ')) AS `Answers`
 FROM `tb_poll` AS q
 LEFT JOIN `tb_poll_answers` AS a
  ON q.id = a.poll_id
 LEFT JOIN `tb_poll_votes` AS v
  ON a.id = v.poll_answer_id
 WHERE 1
 GROUP BY q.id
 ORDER BY q.id

最后我通過子查詢得到了結果

 SELECT q.id,q.question,av.vt,GROUP_CONCAT(CONCAT(av.answer,av.vt) SEPARATOR ' ') 
 AS Answers FROM tb_poll AS q LEFT JOIN
 (SELECT a.answer,a.poll_id,COUNT(v.id) AS vt FROM tb_poll_answers AS a LEFT JOIN tb_poll_votes AS v ON a.id=v.poll_answer_id GROUP BY a.id) AS av
ON q.id=av.poll_id
GROUP BY q.id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM