我有以下查询,它多次重复返回所有相同的行。
我需要加入 2 个表:评论和项目对象,但无论我尝试哪种方式,行都会重复多次。
这是当前的查询:
SELECT
acx_comments.created_on AS 'Time',
acx_project_objects.created_by_id AS `Created By`,
acx_comments.body AS `Comment`,
concat("http://www.example.com/projects/" , acx_project_objects.project_id , "/tasks/" , acx_project_objects.integer_field_1 ) AS URL
FROM acx_comments, acx_project_objects
LEFT JOIN acx_comments v
ON v.parent_id = acx_project_objects.id
WHERE acx_comments.id > 1500 AND acx_comments.id <= 1575
ORDER BY acx_comments.created_on DESC
目前的结果是这样的:
时间/创建者/评论/网址
15:35:34 / 1 / 测试评论 X / URLx
15:35:34 / 1 / 测试评论 X / URLx
15:35:34 / 1 / 测试评论 X / URLx
15:35:34 / 1 / 测试评论 X / URLx
15:35:34 / 1 / 测试评论 X / URLx
15:35:34 / 1 / 测试评论 X / URLx
15:35:34 / 1 / 测试评论 X / URLx
如您所见 - 它多次打印相同的评论。
我知道这是因为 acx_comments.parent_id 在连接到 acx_project_objects.id 时有许多重复项 - 有许多评论具有相同的父 ID,因为每个父级可以有多个评论......但我只是想按日期打印一次评论。
我想不出正确的 Join 方法来让它只打印每条评论一次。上面的代码没有给我按日期排序的评论列表(仅限唯一)。
任何建议都将不胜感激,因为我已经花费了几个小时并且无法找出解决方案。
谢谢!
顺便说一句 - 我必须使用项目对象表,因为它需要构造 URL 地址(请参阅 concat 函数)。如果您认为我应该删除该表 - 这是不可能的