PHP-回显缺少的条目
我有个问题PHP-回显缺少的条目,php,mysql,duplicates,Php,Mysql,Duplicates,我有个问题 SELECT a.* FROM subject_tbl a LEFT JOIN class_tbl b ON a.subject_ID = b.subject_ID AND a.subject_yr = 2010 AND a.subject_sem = '1st' AND b.student_ID = 3003 WHERE b.subj
SELECT a.*
FROM subject_tbl a
LEFT JOIN class_tbl b
ON a.subject_ID = b.subject_ID AND
a.subject_yr = 2010 AND
a.subject_sem = '1st' AND
b.student_ID = 3003
WHERE b.subject_ID IS NULL
我有三张桌子,分别是班级、学科和*学生。班级tbl有3列*“班级id、科目id和学生id”。*而科目tbl有4列*“科目id、科目名称、科目年份、科目结构”*最后*学生tbl有2列“学生id和学生名称”*
SELECT a.*
FROM subject_tbl a
LEFT JOIN class_tbl b
ON a.subject_ID = b.subject_ID AND
a.subject_yr = 2010 AND
a.subject_sem = '1st' AND
b.student_ID = 3003
WHERE b.subject_ID IS NULL
类tbl有以下行:
**[class_id || subject_id || student_id]**
|| 1001 || 2002 || 3003
|| 1002 || 2003 || 3003
|| 1003 || 2004 || 3003
SELECT a.*
FROM subject_tbl a
LEFT JOIN class_tbl b
ON a.subject_ID = b.subject_ID AND
a.subject_yr = 2010 AND
a.subject_sem = '1st' AND
b.student_ID = 3003
WHERE b.subject_ID IS NULL
主题tbl有5行:
**[subject_id || subject_name || subject_yr || subject_sem]**
|| 2002 || Math || 2010 || 1st
|| 2003 || Science || 2010 || 1st
|| 2004 || History || 2010 || 1st
|| 2005 || PE || 2010 || 1st
|| 2006 || Social Studies || 2010 || 1st
SELECT a.*
FROM subject_tbl a
LEFT JOIN class_tbl b
ON a.subject_ID = b.subject_ID AND
a.subject_yr = 2010 AND
a.subject_sem = '1st' AND
b.student_ID = 3003
WHERE b.subject_ID IS NULL
学生tbl有一行:取决于实际学生人数
**[student_id || student_name]**
|| 3003 || John Parker
SELECT a.*
FROM subject_tbl a
LEFT JOIN class_tbl b
ON a.subject_ID = b.subject_ID AND
a.subject_yr = 2010 AND
a.subject_sem = '1st' AND
b.student_ID = 3003
WHERE b.subject_ID IS NULL
这里的目标是,查询将回应最后两个主题,即体育和社会研究,以便我可以将它们插入课堂。echo告诉我,在那个学期和学年,我没有2个科目的条目。该查询不会回显已在数学、科学和历史类tbl条目中的科目。
我如何质疑和回应那学期和那一年缺少的科目?我真的想不出什么主意。帮助tnx
SELECT a.*
FROM subject_tbl a
LEFT JOIN class_tbl b
ON a.subject_ID = b.subject_ID AND
a.subject_yr = 2010 AND
a.subject_sem = '1st' AND
b.student_ID = 3003
WHERE b.subject_ID IS NULL
这里的代码显示了该学校一年和一学期的所有科目
if (isset ($db1)&&$db1!=""){
}
<?php
$student_id = $_POST['student_id'];
$sem = $_POST['sem'];
$yr = $_POST['yr'];
$list = mysql_query("SELECT *
FROM
class_tbl
LEFT JOIN
subject_tbl
ON
class_tbl.subject_id = subject_tbl.subject ID
WHERE
student_id = '$student_id'
OR
subject_sem = '$sem'
OR
subject_yr = '$yr'
ORDER BY
subject_id asc");
while($row_list=mysql_fetch_assoc($list))
{
echo $row_list['subject_id'];
if($row_list['subject_id']==$db1){echo "selected"; }
echo $row_list['subject_name'];
}
SELECT a.*
FROM subject_tbl a
LEFT JOIN class_tbl b
ON a.subject_ID = b.subject_ID AND
a.subject_yr = 2010 AND
a.subject_sem = '1st' AND
b.student_ID = 3003
WHERE b.subject_ID IS NULL
if(isset($db1)&&$db1!=“”){
}
输出
SELECT a.*
FROM subject_tbl a
LEFT JOIN class_tbl b
ON a.subject_ID = b.subject_ID AND
a.subject_yr = 2010 AND
a.subject_sem = '1st' AND
b.student_ID = 3003
WHERE b.subject_ID IS NULL
╔════════════╦════════════════╦════════════╦═════════════╗
║ SUBJECT_ID ║ SUBJECT_NAME ║ SUBJECT_YR ║ SUBJECT_SEM ║
╠════════════╬════════════════╬════════════╬═════════════╣
║ 2005 ║ PE ║ 2010 ║ 1st ║
║ 2006 ║ Social Studies ║ 2010 ║ 1st ║
╚════════════╩════════════════╩════════════╩═════════════╝
输出
SELECT a.*
FROM subject_tbl a
LEFT JOIN class_tbl b
ON a.subject_ID = b.subject_ID AND
a.subject_yr = 2010 AND
a.subject_sem = '1st' AND
b.student_ID = 3003
WHERE b.subject_ID IS NULL
╔════════════╦════════════════╦════════════╦═════════════╗
║ SUBJECT_ID ║ SUBJECT_NAME ║ SUBJECT_YR ║ SUBJECT_SEM ║
╠════════════╬════════════════╬════════════╬═════════════╣
║ 2005 ║ PE ║ 2010 ║ 1st ║
║ 2006 ║ Social Studies ║ 2010 ║ 1st ║
╚════════════╩════════════════╩════════════╩═════════════╝
如果您使用,请将其结构设计得更人性化一点(例如,将内容加粗或斜体),然后帮助您轻松地将其结构设计得更人性化一点(例如,将内容加粗或斜体),如果您使用,那么帮助您轻松地使用许多tnx。。。最后一个问题。请问是否可以,SELECT和class_tbl“b”中的“a.*”代表什么?它们应该是桌子吗?对不起,a和b分别被称为表subject\u tbl
和class\u tbl
的别名a.*
表示从表subject\u tbl
中选择所有列。不客气:)
别名在表名较长时很有用。嘿,伙计,虽然有些科目属于不同的学期和学年,但为什么查询会显示重复项呢?即使我指定了学期和学年。例如,历史分为2010学年的第二学期和2011学年的第一学期。回声显示两个同名条目。添加不同的,例如选择不同的a.*FROM…
Many tnx to u…,怎么样。。。最后一个问题。请问是否可以,SELECT和class_tbl“b”中的“a.*”代表什么?它们应该是桌子吗?对不起,a和b分别被称为表subject\u tbl
和class\u tbl
的别名a.*
表示从表subject\u tbl
中选择所有列。不客气:)
别名在表名较长时很有用。嘿,伙计,虽然有些科目属于不同的学期和学年,但为什么查询会显示重复项呢?即使我指定了学期和学年。例如,历史分为2010学年的第二学期和2011学年的第一学期。回显显示两个相同名称的条目。添加不同名称的条目如何,例如选择不同的a.*FROM…