Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.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/3/html/88.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
Php 在MySQL中删除多案例查询中的重复项_Php_Mysql_Mysqli_Duplicates - Fatal编程技术网

Php 在MySQL中删除多案例查询中的重复项

Php 在MySQL中删除多案例查询中的重复项,php,mysql,mysqli,duplicates,Php,Mysql,Mysqli,Duplicates,我有以下疑问 SELECT student.StudentID, student.`Name`, CASE WHEN attendance.date = '2015-09-07' and attendance.StudentID IS NOT NULL THEN 'Present' ELSE 'Absent' END AS '2015-09-07', CASE WHEN attendance.date = '2015-09-14' and attend

我有以下疑问

 SELECT
    student.StudentID,
    student.`Name`,
    CASE
WHEN attendance.date = '2015-09-07' and attendance.StudentID IS NOT NULL THEN
    'Present'
ELSE
    'Absent'
END AS '2015-09-07',
 CASE
WHEN attendance.date = '2015-09-14' and attendance.StudentID IS NOT NULL THEN
    'Present'
ELSE
    'Absent'
END AS '2015-09-14'
FROM
    student
LEFT JOIN attendance ON student.StudentID = attendance.StudentID`
这给了我以下结果:

我试过按学生分组使用
。StudentID
,但结果不正确。在“k1052280”的“2015-09-14”列中显示“缺席”,而不是当前

我越来越

我想得到这个结果

CREATE TABLE
student
(
StudentID
varchar(8)不为空,
Name
varchar(100)不为空,
Email
varchar(254)字符集latin1不为空,
WorkshopID
int(4)不为空,
主键(
StudentID
),
唯一键
StudentID
StudentID
Email
),
键
WorkshopID
WorkshopID
),
约束
student\u ibfk\u 1
外键(
WorkshopID
)引用
WorkshopID
WorkshopID
)
)ENGINE=InnoDB默认字符集=utf8

创建表
考勤
(
AttendanceID
int(10)非空自动增量,
StudentID
varchar(8)不为空,
Date
Date不为空,
时间
时间不为空,
主键(
AttendanceID
),
唯一键
UNIQUE\u index
StudentID
Date
),
约束条件
Attention\u ibfk\u 1
外键(
StudentID
)引用
student
StudentID
)
)ENGINE=InnoDB AUTO_INCREMENT=194默认字符集=utf8

插入学生
值('k1052280','Ali Shaikh','k1052280@something.com', '101');
插入学生
值('k1052287','McKenzie Roth','Quisque@penatibus.edu', '102');
插入学生
值('k1052288','Dacey Sullivan','sollicitudin.adipsing。ligula@semmollisdui.com', '103');
插入学生
值('k1052289','Callie Williamson','elementum@orciPhasellus.com', '104');
插入学生
值('k1052290','Savannah Hyde','nec.metus。facilisis@nonummyut.co.uk', '101');
插入学生
值('k1052291','Paul Tyson','semper.erat。in@ipsumleoelementum.net', '102');
插入学生
值('k1052292','Nerea Ramos','gravida.sagittis。Duis@lacinia.edu', '103');
插入学生
值('k1052293','Mark Mills','Pelletsque。massa@blanditviverra.co.uk', '104');
插入学生
值('k1052294','Zelda Cantu','ut@fringillaporttitorvulputate.org', '101');

插入考勤
值('168','k1052280','2015-09-07','00:00:00');
插入考勤
值('169','k1052287','2015-09-09','00:00:00');
插入考勤
值('170','k1052288','2015-09-11','00:00:00');
插入考勤
值('171','k1052289','2015-09-11','00:00:00');
插入考勤
值('172','k1052290','2015-09-14','00:00:00');
插入考勤
值('173','k1052291','2015-09-16','00:00:00');
插入考勤
值('174','k1052292','2015-09-18','00:00:00');
插入考勤
值('175','k1052293','2015-09-18','00:00:00');
插入考勤
值('176','k1052294','2015-09-21','00:00:00');
插入考勤
值('177','k1052295','2015-09-23','00:00:00');
插入到考勤
值('178','k1052296','2015-09-25','00:00:00');
插入考勤
值('179','k1052297','2015-09-25','00:00:00');
插入考勤
值('183','k1052288','2015-09-14','00:00:00');
插入考勤
值('187','k1052290','2015-09-07','00:00:00');
插入到考勤
值('188','k1052280','2015-09-21','10:30:00');
插入考勤
值('193','k1052280','2015-04-05','00:00:00')

这个查询将起作用-

 SELECT Student.StudentID, Student.NAME, IF ( ( SELECT distinct 1 FROM attendance WHERE attendance.StudentID = student.StudentID AND date = '2015-09-07' ) = 1, 'Present', 'Absent' ) AS '2015-09-07', IF ( ( SELECT distinct 1 FROM attendance WHERE attendance.StudentID = student.StudentID AND date = '2015-09-14' ) = 1, 'Present', 'Absent' ) AS '2015-09-14' FROM student as student;
范例- 您可以像这样在列中使用子查询

创建表格:创建表格
student
(
id
int(11)非空自动增量,
name
varchar(20)默认为空, 主键(
id
) )ENGINE=InnoDB AUTO_INCREMENT=8默认字符集=1

创建表格:创建表格
参加
(
id
int(11)非空自动增量,
stud\u id
int(11)默认为空,
date
varchar(20)默认为空, 主键(
id
), 键
螺柱id
螺柱id
), 约束
参加ibfk\u 1
外键(
stud\u id
)参考
student
id
) )ENGINE=InnoDB AUTO_INCREMENT=11默认字符集=1

插入数据-

将值(1,'hitesh')、(2,'mundra')、(3,'sumit')、(4,'ashish')插入
student
id
name
)中; 将值(1,1,'05-04-2015')、(2,1,'05-04-2015')、(3,1,'06-04-2015')、(4,1,'06-04-2015')、(5,2,'05-04-2015')、(6,3,'05-04-2015')、(7,3,'05-04-2015')、(8,4,'06-04-2015')插入
出席

结果查询

 select id , name , if((select distinct 1 from attend where stud_id=s.id and date = '05-04-2015')=1,'Present','Absent') as '05-04-2015' ,if((select distinct 1 from attend where stud_id=s.id and date = '06-04-2015')=1, 'Present' , 'Absent') as '06-04-2015' from student as s;

你想看到什么结果?@TimBiegeleisen我想看看他们是否在场,如果他们在每个日期都缺席,你还没有给我们一个规则,告诉我们如何使用
k1052280
在两行之间进行选择。请解释你的逻辑。学生“萨凡纳”怎么能同时“缺席”和“在场”?您的逻辑有问题。该表有问题,一个人不应该有多个条目,我认为您需要更改初始查询,这样每次修改我的db时,它只会返回一行给您,我得到这个错误[Err]1242-子查询返回多行使用此查询-选择