2013-05-08 4 views
0

У меня есть 3 таблицы, к которым я пытаюсь присоединиться.Соедините 3 таблицы в Codeigniter

user 
photographer 
gallery 

Все они имеют один и тот же идентификатор column_ user_id.

Когда я делаю выбор, в таблице пользователя есть одна запись, одна запись в таблице фотографа и в настоящее время 5 записей в таблице галереи.

Я хотел бы получить только один ряд назад, но содержащий 5 результатов из таблицы галереи.

Я пробовал следующее, но он возвратил 5 отдельных строк.

$this->db->select('*');  
$this->db->from('user'); 
$this->db->join('photographer', 'gallery.user_id = photographer.user_id'); 
$this->db->join('gallery', 'gallery.user_id = users.id'); 

В принципе, у каждого фотографа есть пользовательская запись, но у них может быть несколько изображений, хранящихся в таблице галереи.

Мне нужен только один результат для фотографа, но вам тоже нужны 5 изображений.

Любые идеи? Заранее спасибо.

+0

Почему вы не используете $ this-> db-> limit (1); ?? –

ответ

1

У вас есть 2 варианта как я вижу это:

  1. Использование 2 запросов: один для пользователя таблицы и фотографа, где он будет возвращать только одну запись, а второй запрос для получения изображений.

  2. Оставьте запрос таким, как есть, и перечислите пользователя + фотограф из первой строки и зациклируйте все строки, чтобы отобразить изображения.

Примечание: Я предпочитаю использовать первый метод, хотя он добавляет больше запросов к моему заявлению, но таким образом, что это очень ясно, что я предназначен и другие программисты, легче изменить мой сценарий.

+0

Согласен, он должен обязательно использовать 2 вопроса! – jah

+0

Я пошел с вариантом 1 - спасибо! – lunchboxbill

Смежные вопросы