我的数据库中有这些数据(3,15,6,4,15),我尝试使用组连接在我的表格上显示它,问题是我得到了重复的结果。 (3,15,6,4,15,3,15,6,4,15,3,15,6,4,15)。
我尝试使用不同的,但它也消除了另一个“15”。
最好的解决方案是什么? 谢谢!
这是我的查询
SELECT users.*, GROUP_CONCAT(written.score separator ' - ') as Wscore, student_subject.*,SUM(written.score) as total, SUM(written.item) as item FROM users JOIN written ON users.idnumber=written.idnumber JOIN student_subject ON users.idnumber=student_subject.idnumber WHERE student_subject.teacher='$login_session' AND written.section='$section' AND written.level='$level' AND written.year='$year' AND written.subject='$subject' AND users.gender='male' AND written.period='first' GROUP BY users.idnumber order by users.lname
最佳答案
您可能只想在 group_concat()
中实现distinct
:
SELECT u.*, GROUP_CONCAT(distinct w.score separator ' - ') as Wscore,
ss.*, SUM(w.score) as total, SUM(w.item) as item
FROM users u JOIN
written w
ON u.idnumber = w.idnumber JOIN
student_subject ss
ON u.idnumber = ss.idnumber
WHERE ss.teacher = '$login_session' AND w.section='$section' AND
w.level = '$level' AND w.year = '$year' AND w.subject = '$subject' AND
u.gender = 'male' AND w.period = 'first'
GROUP BY u.idnumber
order by u.lname;
请注意表别名如何使查询更易于编写和读取。
关于mysql - group_concat 中的重复结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32550678/