Сразу же я бы спросил "Что не работает?" , во-вторых, я бы предложил вам запустить профилировщик, чтобы показать генерируемый EXACT SQL , чтобы вы может сделать правильную оценку того, где ACTIVE QUERY вам не удается.
Чтобы использовать профилировщик, вставьте это в свой контроллер:
$this->output->enable_profiler(TRUE);
Это приведет к хорошему выводу всех вызовов БД, всех переменных POST и т. Д .;
Ссылка здесь: http://codeigniter.com/user_guide/libraries/output.html
ОБНОВЛЕНИЕ
Итак, чтобы полностью сделать то, что вы хотите, вам нужен запрос, который возвращает следующие столбцы:
user_id, username, topic_id, topic_name, quote_id, quote_name
Вот активный запрос, который вы хотите (вы также можете использовать цепочку методов, если это достаточно ясно):
$this->db->select('u.user_id, u.username, t.topic_id, t.topic_name, q.quote_id, q.quote_name');
$this->db->from('users u');
$this->db->join('topics t', 't.user_id = u.user_id'); // this joins the user table to topics
$this->db->join('quotes q', 'q.topic_id = t.topic_id'); // this joins the quote table to the topics table
$query = $this->db->get();
Ваш набор результатов будет примерно таким:
user_id | username | topic_id | topic_name | quote_id | quote_name
1 |Thomas |1 |Whatever |1 |One quote, anot...
2 |Ryan |4 |Another... |6 |To be or not to...
Как только у вас будет этот набор результатов, просто переберите данные, чтобы вывести их, и проверьте, есть ли у вас несколько кавычек от одного человека (например, сортируйте по user_id и выполните тест во втором цикле, если это один и тот же человек в противном случае выведите имя нового пользователя).