Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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、SQL、PHP我可以从由第三个表连接的两个表中获取数据吗_Php_Mysql_Sql - Fatal编程技术网

MySQL、SQL、PHP我可以从由第三个表连接的两个表中获取数据吗

MySQL、SQL、PHP我可以从由第三个表连接的两个表中获取数据吗,php,mysql,sql,Php,Mysql,Sql,我有个问题 我有三张桌子: 1 table named "members" (it has the members data, ID, Username, Password) 2 table named "schools" (it has list of schools ID, School_Name, School_Number) 3 table named "members_schools" (Here I two columns: User_ID, School_ID) 所以我正处于一片

我有个问题 我有三张桌子:

1 table named "members" (it has the members data, ID, Username, Password)
2 table named "schools" (it has list of schools ID, School_Name, School_Number)
3 table named "members_schools" (Here I two columns: User_ID, School_ID)
所以我正处于一片混乱之中,我需要实现一个排序或分组系统 例如: 圣彼得学校,8号,在“学校”表中有一个ID 1

用户有权从列表中选择该学校,然后我进行了查询,将其选择保存在“members\u schools”中,如下所示:

User_ID  ::  Scool_ID
4        ::   1
这应该会带来:ID为4的用户正在就读ID为1的学校,这里是“圣彼得学校”

现在我试图离开,加入彼此的桌子,但迄今为止没有运气!!我不知道如何实现这一点,从三个表中检索数据并按此顺序在页面上显示它们

School               ::     No. Attenders
School Of St.Peter   ::     "NUMBER OF MEMBERS WHO HAVE APPLIED FOR THIS SCHOOL"
谢谢你们

SELECT schools.School_name AS `School`, COUNT(0) AS `Nr. Attenders`
FROM schools INNER JOIN members_schools ON schools.id = members_schools.School_ID
GROUP BY schools.School_name
将为您提供每所学校的会员人数
“成员”表与出席人数无关。

在需要所有用户的详细信息之前,您不需要使用三个表。要获得计数,我们只需要使用
学校
成员学校

使用
LEFT JOIN
,然后计算结果中的用户id

SELECT schools.School_Name AS School, IFNULL(COUNT(member_schools.User_ID),0) AS Number_of_Attenders
FROM schools LEFT JOIN member_schools
ON schools.ID = member_schools.School_ID
GROUP BY schools.School_name
样本输出

School               ::     Number_of_Attenders
School Of St.Peter   ::     4
School               ::     Attenders
School Of St.Peter   ::     Isaac, Kevin, Rockse, Aish
要显示所有成员的用户名,请使用GROUP_CONCAT

SELECT schools.School_Name AS School, GROUP_CONCAT(members.Username) AS Attenders
FROM schools LEFT JOIN member_schools
ON schools.ID = member_schools.School_ID
INNER JOIN members
ON member_schools.User_ID = members.ID
GROUP BY schools.School_name
样本输出

School               ::     Number_of_Attenders
School Of St.Peter   ::     4
School               ::     Attenders
School Of St.Peter   ::     Isaac, Kevin, Rockse, Aish

我可能需要从members表中获取其他详细信息。请告诉我您看到的确切结果是什么?我只需要显示成员的用户名,就像通过第三个表连接两个表一样。谢谢)非常感谢你的帮助,我会尝试这个版本,回答:我尝试了很多,但是没有成功!我需要将前面的代码应用到PHP中的mySql查询中,这将所有内容都混在一起!!!另外,我不明白为什么用“AS”这个词会让我头晕目眩!!任何简单的方法都很好。。谢谢我不确定这段代码,事实上我是个初学者,“s”和“m”让我很困惑!!如果你能用更简单的方式写,我将不胜感激。!!我已经删除了别名。谢谢你的帮助,先生,这个答案也是正确的。)非常感谢