Mysql SQL重复行SQL查询

Mysql SQL重复行SQL查询,mysql,sql,database,postgresql,Mysql,Sql,Database,Postgresql,我的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

我的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"

使用
Group\u 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 
对于
Postgres
使用
array\u to\u string
array\u agg
。请查收解释


试着加入一些连接条件。你能告诉我怎么做吗?
按考试日期分组
分组(名字)
nice..你能告诉我postgersql中的等效项吗?我在这两个数据库中都有相同的数据库(mysql和postgres)在2台机器中运行,你能在PASGESQL中发布等价物吗?这些表需要正确连接。交叉连接四个表非常昂贵。@ErwinBrandstetter-根据样本数据,这显然是solution@Fireblade:这是一个非常糟糕、潜在危险的例子。任何人都不应该使用它。如果每个表中有多行,则四个表的交叉连接可能会使服务器暂停。只需添加连接条件。问题是缺少修复查询的基本信息。
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