I understand: question is a question table, listing all questions answer is a reply table, a reply to a specific question, using question_id to associate with the id in the question table reply is a reply to a certain question Comments, use answer_id to associate with the id in the answer table The following code is based on the above understanding
select t1.q_id as 问题id
, t1.q_user_id as 提问者id
, t1.q_content as 问题内容
, t2.a_id as 回复id
, t2.a_user_id as 回复者id
, t2.a_content as 回复内容
, t3.r_id as 评论id
, t3.r_user_id as 评论者id
, t3.r_content as 评论内容
from
(
select id as q_id ,user_id as q_user_id ,content as q_content
from question
) t1 -- 所有的问题列表,用id做唯一性的区分
left outer join
(
select id as a_id ,question_id ,user_id as a_user_id ,content as a_content
from answer
) t2
on t1.q_id = t2.question_id -- 每个question_id对应的回复
left outer join
(
select id as r_id ,answer_id ,user_id as r_user_id ,content as r_content
) t3
on t2.a_id = t3.answer_id -- 每个answer_id对应的评论
select reply.,answer.,question.* from reply right join answer on reply.answer_id = answer.I'd right join question on answer.question_id = question.id Where question.id =(查找的question.id)
I understand: question is a question table, listing all questions
answer is a reply table, a reply to a specific question, using question_id to associate with the id in the question table
reply is a reply to a certain question Comments, use answer_id to associate with the id in the answer table
The following code is based on the above understanding
select reply.,answer.,question.* from
reply
right join answer on
reply.answer_id = answer.I'd
right join question on
answer.question_id = question.id
Where question.id =(查找的question.id)