删除mysql查询中的冗余

时间:2015-03-26 23:59:48

标签: php mysql

我的SQL查询有问题。我想订购表格中的条目,因此首先是更新的记录。我用它来查询:

SELECT *
FROM swt_subjects
WHERE `type` = 2
ORDER BY `date_beg` DESC, `name` DESC

如果在表格主题中只出现一次,但如果主题出现几次,则会在表格中显示倍数,这样做效果很好。如何修改此查询以仅显示每个名称一次?

DB中的表格方案是:

id, name, type, date_beg, date_end

displaying records from table - redundant record "Softwarepraktikum"

编辑: 使用GROUP BY时,它仍然没有以正确的方式显示。 Display with GROUP BY

1 个答案:

答案 0 :(得分:1)

您可能想要使用GROUP BY子句:

SELECT
  id, name, type, MAX(date_beg) as start, MAX(date_end) as end
FROM
  swt_subjects
WHERE
  type = 2
GROUP BY
  id, name, type
ORDER BY 
  start DESC, name DESC