我正在查询四个表(活动、注释、类别、user_entries)以查找活动或注释的匹配项。在我的开发数据库中,我有 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`
我在这里查看了很多类似的问题(尤其是问题 7696248):但我尝试过的任何方法都没有奏效。尽管尝试了很多建议(有/没有 DISTINCT、有/没有 GROUP BY、许多连接类型等),但我每次都得到相同的结果:查询基本上有问题。我的SQL知识不好,我不知道如何解决它。
任何人都可以帮忙吗?
编辑:为清楚起见,该数据库是持续专业发展活动的记录。笔记(名称很混乱,但不是我的名字!)与活动无关:它们是供用户记录重大事件的——“由于交通事故,3 个月内没有完成 CPD”,等等。
我需要在同一页面上列出笔记和活动:如果可能,我更愿意运行一个数据库查询;如果不是,我将不得不运行两个查询并合并两个结果数组。