我有以下查詢是多次返回所有相同的行。MySQL查詢 - 加入問題
我需要連接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
目前的結果是這樣的:
時間/創建/評論/ URL
15時35分34秒/ 1 /測試點評X /網址X
15時35分34秒/ 1 /測試點評X /網址X
15時35分34秒/ 1 /測試點評X /網址X
15時35分34秒/ 1 /測試點評X /網址X
15時35分34秒/ 1 /測試點評X /網址X
15點35: 34/1 /測試註釋X /網址X
15時35分34秒/ 1 /測試點評X /網址X
正如你可以看到 - 它是同一個註釋多次打印。
我知道這是由於acx_comments.parent_id連接到acx_project_objects.id時有很多重複的事實 - 有很多註釋具有相同的父母id,因爲每個父母可以有多個註釋。但我只想按日期順序打印評論。
我找不出正確的Join方法來使它只打印每個評論一次。上面的代碼沒有給我按日期排序的評論列表(僅限於唯一)。
任何意見,將不勝感激,因爲我已經花了幾個小時,並不能找出解決方案。
謝謝!
順便說一句 - 我必須使用項目對象表,因爲它需要構造URL地址(請參閱concat函數)。如果你認爲我應該刪除該表 - 這是不可能的
使用distinct關鍵字? – Sebas 2013-03-17 03:09:49
以及有關混合逗號和ansi連接的信息,請查看該帖子:http://stackoverflow.com/a/11180050/1291428 – Sebas 2013-03-17 03:15:23
對此查詢運行解釋計劃,我敢打賭你會看到錯誤的解決方案遠。 – Aaron 2013-03-17 03:31:52