简体   繁体   English

MySQL查询联接三个表

[英]Mysql query for joining three tables

I have three Tables. 我有三个桌子。

requests - request_id, request_message, requester_id 请求 -request_id,request_message,requester_id

  • requesters 请求者
  • requesters_id, requesters_name requesters_id,requesters_name
  • responses 回应
  • response_id, request_id, response_message response_id,request_id,response_message

I want to fetch All the fields from requests , requesters_name from requesters for which requester_id is in requests table and count of responses for request_id from responses table. 我想从requests中获取所有字段从requesters中获取requester_id的请求者的requesters_name,并从响应表中获取request_id的响应计数

please help me out. 请帮帮我。

Thanks 谢谢

I'd get the count from a sub-select and just join the other two tables together with a regular join 我将从子选择中获取计数,然后将其他两个表与常规联接一起联接

SELECT r.*, rn.requesters_name, 
    (SELECT COUNT(response_id) 
       FROM responses rp WHERE r.request_id=rp.request_id) 
    AS response_count
FROM requests r JOIN requester rn ON r.requesters_id=rn.requesters_id 
SELECT requests.*,requesters.requesters_name,count(1) AS c FROM requests
LEFT JOIN requesters ON requesters.requester_id = request.requester_id
LEFT JOIN responses ON responses.request_id = requests.request_id
GROUP BY requests.request_id

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM