2015-04-05 67 views
-1

我有一个问题,它打印这个SQL语句重复的行是烦人此结果是我的SQL语句:SQL-重复的行SQL查询

SELECT 
week_day, 
exam_date , 
s.name , 
l.lgna_name 
,f.first_name 
FROM 
fci_exam_time_table_line, 
fci_subject s , 
fci_staff f, 
lgna_lgna l 
WHERE 
exam_id =%d 
GROUP BY 
week_day, 
exam_date , 
s.name , 
l.lgna_name , 
f.first_name 
ORDER BY 
exam_date 

和它打印像下面

week_day| exam_date |name|lgna_name|first_name 

"monday";"2015-04-13";"12"; "12" ;"12" 
"monday";"2015-04-13";"12"; "12" ;"323" 
"monday";"2015-04-13";"12"; "232" ;"12" 
"monday";"2015-04-13";"12"; "232" ;"323" 
"monday";"2015-04-14";"12"; "12" ;"12" 
"monday";"2015-04-14";"12"; "12" ;"323" 
"monday";"2015-04-14";"12"; "232" ;"12" 
"monday";"2015-04-14";"12"; "232" ;"323" 

,我想它来打印此类似:

week_day| exam_date |name|lgna_name|first_name 

"monday";"2015-04-13";"12"; "12" ;"12,323" 
"monday";"2015-04-13";"12"; "232";"12,323" 
"monday";"2015-04-14";"12"; "12" ;"12,323" 
"monday";"2015-04-14";"12"; "232" ;"12,323" 
+1

尝试放入一些连接条件。 – 2015-04-05 03:06:54

+0

你能告诉我如何? – 2015-04-05 03:07:40

+0

'GROUP BY exam_date'和'GROUP_CONCAT(first_name)' – 2015-04-05 03:13:47

回答

0

使用Group_Concat功能和除去叔他从Group by

SELECT week_day, 
     exam_date, 
     s.name, 
     l.lgna_name, 
     Group_conact(f.first_name, ',') 
FROM fci_exam_time_table_line, 
     fci_subject s, 
     fci_staff f, 
     lgna_lgna l 
WHERE exam_id =% d 
GROUP BY week_day, 
      exam_date, 
      s.name, 
      l.lgna_name 
ORDER BY exam_date 

f.first_name对于Postgres使用array_to_stringarray_agg。对于说明检查here

select ... 
     array_to_string(array_agg(f.first_name), ',') 
FROM fci_exam_time_table_line, 
     fci_subject s, 
     fci_staff f, 
     lgna_lgna l 
WHERE exam_id =% d 
GROUP BY week_day, 
      exam_date, 
      s.name, 
      l.lgna_name 
ORDER BY exam_date 
+0

你可以在postgersql中发布等价物吗? – 2015-04-05 03:32:59

+0

@MostafaMohamed - yeah更新 – 2015-04-05 03:33:39

+0

谢谢,,真棒 – 2015-04-05 03:35:53