Php 提供重复结果的MySQL查询

Php 提供重复结果的MySQL查询,php,mysql,Php,Mysql,我正在查询四个表(活动、注释、类别、用户条目),查找活动或注释的匹配项。在我的开发数据库中,我有8个活动和2个注释相匹配:相反,我得到了16个结果。每个活动都是重复的:一个结果包括第一个音符,另一个结果包括第二个音符 这就是目前的查询: SELECT a.`aid`, a.`activityname`, a.`date`, u.`points`, u.`enid`, c.`catname`, n.`nid`, n.`notename`, n.`dates` FROM activities a I

我正在查询四个表(活动、注释、类别、用户条目),查找活动或注释的匹配项。在我的开发数据库中,我有8个活动和2个注释相匹配:相反,我得到了16个结果。每个活动都是重复的:一个结果包括第一个音符,另一个结果包括第二个音符

这就是目前的查询:

SELECT a.`aid`, a.`activityname`, a.`date`, u.`points`, u.`enid`, c.`catname`, n.`nid`, n.`notename`, n.`dates`
FROM activities a
INNER JOIN user_entries u ON a.`aid` = u.`aid_FK`
INNER JOIN categories c ON a.`category` = c.`cat`
INNER JOIN notes n ON u.`mem_no_FK` = n.`mem_no_FK`
WHERE u.`mem_no_FK` = 1995
GROUP BY a.`aid`, a.`activityname`, a.`date`, u.`points`, u.`enid`, c.`catname`, n.`nid`, n.`notename`, n.`dates`
ORDER BY `date`
我在这里已经研究了很多类似的问题,(特别是):但我尝试过的都没有奏效。尽管尝试了很多建议(有/没有DISTINCT、有/没有groupby、许多连接类型等等),但每次我都得到了相同的结果:查询基本上出了问题。我的SQL知识不是很好,我不知道如何修复它

有人能帮忙吗

编辑:为了清晰起见 该数据库是持续专业发展活动的记录。注释(名称混乱,但不是我写的!)与活动无关:它们用于用户记录重大事件——“由于道路事故,3个月内没有进行CPD”,等等


我需要在同一页上列出注释和活动:如果可能的话,我宁愿运行一个DB查询;如果不是,我将不得不运行两个查询并合并两个结果数组。

请尝试
DISTINCT
for
aid

SELECT DISTINCT(a.`aid`), a.`activityname`, a.`date`, u.`points`, u.`enid`, c.`catname`, n.`nid`, n.`notename`, n.`dates`
FROM activities a
INNER JOIN user_entries u ON a.`aid` = u.`aid_FK`
INNER JOIN categories c ON a.`category` = c.`cat`
INNER JOIN notes n ON u.`mem_no_FK` = n.`mem_no_FK`
WHERE u.`mem_no_FK` = 1995
GROUP BY a.`aid`, a.`activityname`, a.`date`, u.`points`, u.`enid`, c.`catname`, n.`nid`, n.`notename`, n.`dates`
ORDER BY `date`

如果要在一列中选择所有注释,可以使用
GROUP\u CONCAT


请您提供这三个表中的示例数据好吗?制作一个符合预期行为的SQLFIDLE:您在aid和notes上分组,您还期望得到什么?您希望如何在一行中表示不同的注释?另外,
GROUP BY
子句是多余的,因为您选择的内容与GROUP BY中的内容完全相同,从而使GROUP BY变得无用。谢谢,但我已经尝试过这样做:像以前一样显示重复项。这确实返回8项活动,但不返回注释。请查看我的(和其他注释)以了解您的问题。我们现在不能很好地回答这个问题。。。
SELECT a.`aid`, a.`activityname`, a.`date`, u.`points`, u.`enid`, c.`catname`, GROUP_CONCAT(n.`notename` SEPARATOR ' ') as notes
FROM activities a
JOIN user_entries u ON a.`aid` = u.`aid_FK`
JOIN categories c ON a.`category` = c.`cat`
JOIN notes n ON u.`mem_no_FK` = n.`mem_no_FK`
WHERE u.`mem_no_FK` = 1995
GROUP BY a.`aid`
ORDER BY `date`