Mysql 在这种情况下如何连接3个表
我想加入3个表 Table employer: +-------------+-------------+---------+ | employer_id | position_id | shop_id | +-------------+-------------+---------+ | 1 | 2 | 2 | | 2 | 2 | 2 | | 3 | 2 | 2 | | 4 | 1 | 1 | | 5 | 1 | 2 | +-------------+-------------+---------+ Table position: +-------------+-----------------+ | position_id | position_name | +-------------+-----------------+ | 1 | Receptionist | | 2 | Secretary | +-------------+-----------------+ Table shop: +---------+-----------+ | shop_id | shop_name | +---------+-----------+ | 1 | Shop ABC | | 2 | Shop DEF | +---------+-----------+ 我得到的结果是: Shop ABC Receptionist Job Available : 1 Shop DEF Secretary Job Available : 4 商店ABC 可用接待员职位:1 车间DEF 秘书职位空缺:4 但我想要的是: Shop ABC Receptionist Job Available : 1 Shop DEF Receptionist Job Available : 1 Secretary Job Available : 3 商店ABC 可用接待员职位:1 车间DEF 可用接待员职位:1 秘书职位空缺:3Mysql 在这种情况下如何连接3个表,mysql,join,Mysql,Join,我想加入3个表 Table employer: +-------------+-------------+---------+ | employer_id | position_id | shop_id | +-------------+-------------+---------+ | 1 | 2 | 2 | | 2 | 2 | 2 | | 3 | 2
获得我想要的结果的正确查询是什么?如果有人能帮我解决这个问题,我将不胜感激。多谢各位 您需要按店铺和职位分组,而不仅仅是店铺:
SELECT S._Id , S.Shop_Name
P.Position_Name ,
COUNT(E.employer_id) AS NumberOfJobs
FROM shop AS S
INNER JOIN employer AS E ON S.shop_id = E.shop_id
INNER JOIN position AS P ON P.position_id = E.position_id
GROUP BY S.shop_id, S.Shop_Name, P.Position_Name
谢谢你的回复。我尝试了您的查询,“Shop DEF”将显示两次。如何仅显示一个“Shop DEF”?您在数据库查询中混淆了UI。此查询将获得您需要向用户提供的所有信息,您的用户界面应以您想要的格式显示它
SELECT S._Id , S.Shop_Name
P.Position_Name ,
COUNT(E.employer_id) AS NumberOfJobs
FROM shop AS S
INNER JOIN employer AS E ON S.shop_id = E.shop_id
INNER JOIN position AS P ON P.position_id = E.position_id
GROUP BY S.shop_id, S.Shop_Name, P.Position_Name