我正在下面创建一个查询,它根据用户在搜索栏中输入的术语检索数据。现在我要做的是不显示重复数据,所以如果有 2 行所有字段都完全相同,那么它就是重复行,所以它只显示一次而不是多次。现在我认为它似乎这样做了,因为我没有看到重复的行,但我所做的只是对除 Answer 字段之外的所有 SELECT 字段进行 GROUP BY,因为它不允许我在 GROUP BY 子句中使用组连接。
但我的问题是,我是否需要 GROUP Y 子句中的该字段不显示重复的行,或者它真的不需要?
SELECT
q.QuestionContent,
o.OptionType,
q.NoofAnswers,
GROUP_CONCAT(DISTINCT Answer ORDER BY Answer SEPARATOR ',') AS Answer,
r.ReplyType,
q.QuestionMarks
FROM Question q
LEFT JOIN Answer an
ON q.QuestionId = an.QuestionId
LEFT JOIN Reply r
ON q.ReplyId = r.ReplyId
LEFT JOIN Option_Table o
ON q.OptionId = o.OptionId
WHERE ".implode(" AND ", array_fill(0, $numTerms, "q.QuestionContent LIKE ?"))."
GROUP BY q.QuestionContent,
o.OptionType,
q.NoofAnswers,
r.ReplyType,
q.QuestionMarks
ORDER BY ".implode(", ", array_fill(0, $numTerms, "IF(q.QuestionContent LIKE ?, 1, 0) DESC"))."