次のクエリがあり、同じ行を複数回繰り返し返しています。
コメントとプロジェクトオブジェクトの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/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を持つコメントが多数あります...しかし、私はコメントを日付順に1回印刷したい。
各コメントを1回だけ印刷するために使用する正しいJoinメソッドがわかりません。上記のコードは、日付順に並べられたコメントのリストを表示していません(一意のみ)。
私はこれに何時間も費やし、解決策を理解できないので、アドバイスをいただければ幸いです。
ありがとうございました!
ところで-URLアドレスを作成する必要があるため、プロジェクトオブジェクトテーブルを使用する必要があります(concat関数を参照)。あなたが私がそのテーブルを削除するべきだと思っている場合-それは不可能です