Php 连接表以检索数据
我有三张桌子连在一起。我想做的是为班上所有的学生生成一张成绩单 表学生信息Php 连接表以检索数据,php,mysql,Php,Mysql,我有三张桌子连在一起。我想做的是为班上所有的学生生成一张成绩单 表学生信息 name sex age students_ID --------- --- --- ----------- Kinsley M 12 1 Michael m 12 2 Rhianna f 22 3 表得分\u面板 1stCA 2ndCA exam students_ID subjectID ----- ----- --
name sex age students_ID
--------- --- --- -----------
Kinsley M 12 1
Michael m 12 2
Rhianna f 22 3
表得分\u面板
1stCA 2ndCA exam students_ID subjectID
----- ----- ---- ----------- ---------
23 15 42 1 1
10 12 7 1 2
43 15 62 1 3
10 12 27 2 1
10 12 57 2 2
23 15 12 2 3
11 12 27 3 1
04 12 57 3 2
13 25 12 3 3
表主题
subjectname subjectID
----------- ---------
english 1
maths 2
biology 3
我希望我的结果如下所示:
NAME KINSLEY
SEX M
AGE 12
NAME KINSLEY
SEX M
AGE 12
然后是成绩单
subject 1stCA 2ndCA EXAM
--------- ----- ----- ----
english 23 15 42
maths 10 12 7
Biology 43 15 62
subject 1stCA 2ndCA EXAM
--------- ----- ----- ----
english 23 15 42
maths 10 12 7
Biology 43 15 62
NAME Rhianna
SEX F
AGE 22
subject 1stCA 2ndCA EXAM
--------- ----- ----- ----
english 11 12 27
maths 04 12 57
Biology 13 25 12
。。。对所有学生来说都是如此
只检索到一个主题和分数,而不是全部
<?php
include("connect.php");
$generate="SELECT students_info.name, subject.subjectname, scores_panel.1stCA, scores_panel.2ndCA, scores_panel.EXAM
FROM
students_info
LEFT JOIN
scores_panel
ON students_info.students_ID=scores_panel.students_ID
LEFT JOIN
subject
ON
subject.subjectID=scores_panel.subjectID ";
$fetch=mysql_query($generate);
while($row=mysql_fetch_array($fetch)or die(mysql_error()))
{
?>
**NAME:**
<?PHP echo $row['name']; ?>
subject 1stCA 2ndCA EXAM
----------
<?PHP echo $row['subjectname']; ?>
<?PHP echo $row['1stCA']; ?>
<?PHP echo $row['2ndCA']; ?>
<?PHP echo $row['EXAM']; ?>
THIS IS YOUR REPORT CARD
<?PHP } ?>
然后是成绩单
subject 1stCA 2ndCA EXAM
--------- ----- ----- ----
english 23 15 42
maths 10 12 7
Biology 43 15 62
subject 1stCA 2ndCA EXAM
--------- ----- ----- ----
english 23 15 42
maths 10 12 7
Biology 43 15 62
NAME Rhianna
SEX F
AGE 22
subject 1stCA 2ndCA EXAM
--------- ----- ----- ----
english 11 12 27
maths 04 12 57
Biology 13 25 12
然后是成绩单
subject 1stCA 2ndCA EXAM
--------- ----- ----- ----
english 23 15 42
maths 10 12 7
Biology 43 15 62
subject 1stCA 2ndCA EXAM
--------- ----- ----- ----
english 23 15 42
maths 10 12 7
Biology 43 15 62
NAME Rhianna
SEX F
AGE 22
subject 1stCA 2ndCA EXAM
--------- ----- ----- ----
english 11 12 27
maths 04 12 57
Biology 13 25 12
。。。对所有学生来说都是如此 你把这个染红了吗?
如果您已经知道表联接,那么您必须精确/向我们展示您的问题到底是什么(意味着代码的当前状态是什么)Simple应该解决这个问题:
SELECT
st.name, st.sex, st.age,
sub.subjectname,
sc.1stCA, sc.2ndCA, sc.exam
FROM scores_panel AS sc
LEFT JOIN subject AS sub ON sub.subjectID = sc.subjectID
LEFT JOIN students_info AS st ON st.students_ID = sc.students_ID
这是
查询是
SELECT T1.NAME, T1.SEX, T1.AGE, T2.EXAM, T3.SUBNAME, T2.1CA, T2.2CA
FROM TAB1 AS T1 LEFT JOIN TAB2 AS T2 ON T1.STUDENT_ID = T2.STUDENT_ID
LEFT JOIN TAB3 AS T3 ON T2.SUBJ_ID = T3.SUBID;
同时添加您迄今为止尝试过的内容..使用fiddle查看我发布的答案。非常感谢您的快速回复,但这些内容并没有满足我的要求。我已经用示例代码编辑了我的问题,谢谢