Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在这种情况下如何连接3个表_Mysql_Join - Fatal编程技术网

Mysql 在这种情况下如何连接3个表

Mysql 在这种情况下如何连接3个表,mysql,join,Mysql,Join,我想加入3个表 Table employer: +-------------+-------------+---------+ | employer_id | position_id | shop_id | +-------------+-------------+---------+ | 1 | 2 | 2 | | 2 | 2 | 2 | | 3 | 2

我想加入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 秘书职位空缺:3
获得我想要的结果的正确查询是什么?如果有人能帮我解决这个问题,我将不胜感激。多谢各位

您需要按店铺和职位分组,而不仅仅是店铺:

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