2015-09-13 4 views
0

У меня эти данные в моей базе данных (3,15,6,4,15), и я попытался показать их на своей таблице с помощью группы concat, проблема в том, что я получил дубликаты результатов. (3,15,6,4,15,3,15,6,4,15,3,15,6,4,15).duplicate result in group_concat

Я попытался использовать различные, но он устранил и другие «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 

ответ

0

Вы, вероятно, просто хочу distinct в group_concat():

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; 

Обратите внимание, как псевдонимы таблиц сделать проще запрос писать и читать.

+0

Фактически я попытался использовать отчетливый внутри группы concat, но другой 15 не показан –

+0

@misdirection. , , Если вы хотите удалить дубликаты, почему вы хотите, чтобы 15 появлялись дважды? –

+0

потому что в моей базе данных (3,15,6,4,15) –