0

ある種のチケットシステムを開発しようとしていますが、小さな部分で問題があります.

そのため、UNIX タイムスタンプ列「created_at」で並べられた「discussions」テーブルに保存されたディスカッションがあります。

次に、チケットの応答を含む「コメント」テーブルがあります。

私がやりたいことは、基本的に最近の活動でチケットを注文することです。

私はクエリでテーブルを結合するのが得意ではありません。これは私が試したことですが、悲しいことにうまくいきません: /

SELECT *
FROM (`discussions`)
JOIN `comments` ON `comments`.`object_id` = `discussions`.`id`
WHERE `project_id` = '2'
  AND `comments`.`type` = 'discussion'
ORDER BY `comments`.`created_at` ASC,
         `discussions`.`created_at` DESC

CodeIgniter を使用しており、これが Active Record コードです

$query = $this->db->where('project_id', $id)
                        ->join('comments', 'comments.object_id = discussions.id')
                        ->where('comments.type', 'discussion')
                        ->order_by('comments.created_at', 'asc')
                        ->order_by('discussions.created_at', 'desc')
                        ->get('discussions');

助けてくれてありがとう!

4

1 に答える 1

0

このクエリを試してください

SELECT * FROM discussions d, comments c
where c.object_id = d.id
and project_id = '2' 
AND c.type = 'discussion' 
ORDER BY c.created_at,d.created_at desc
于 2013-04-17T14:06:24.797 に答える