Codeigniter: выберите из нескольких таблиц - PullRequest
7 голосов
/ 05 мая 2010

Как выбрать строки из двух или более таблиц?

Я устанавливаю поля по умолчанию для формы, и мне нужны значения из двух таблиц ...

Мой текущий код гласит:

    $this->CI->db->select('*');
    $this->CI->db->from('user_profiles');
    $this->CI->db->where('user_id' , $id);
    $user = $this->CI->db->get();
    $user = $user->row_array();
    $this->CI->validation->set_default_value($user);

Ответы [ 6 ]

20 голосов
/ 06 мая 2010

Пример в руководстве пользователя должен объяснить это:

$this->db->select('*'); // <-- There is never any reason to write this line!
$this->db->from('blogs');
$this->db->join('comments', 'comments.id = blogs.id');

$query = $this->db->get();

// Produces:
// SELECT * FROM blogs
// JOIN comments ON comments.id = blogs.id

См. Все в разделе Активная запись в Руководстве пользователя.

10 голосов
/ 06 мая 2010

Просто добавьте другую таблицу в метод "-> from ()". Что-то вроде:

 $this->db->select('t1.field, t2.field2')
          ->from('table1 AS t1, table2 AS t2')
          ->where('t1.id = t2.table1_id')
          ->where('t1.user_id', $user_id);
8 голосов
/ 03 февраля 2013

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

Вот мой дубль:

    $this->db->select('u.*, c.company, r.description');
    $this->db->from('users u, company c, roles r');
    $this->db->where('c.id = u.id_company');
    $this->db->where('r.permissions = u.permissions');
    $query = $this->db->get();
1 голос
/ 13 июня 2016

Попробуйте это

   $this->db->select('*')
            ->from('student')
            ->where('student.roll_no',$id)
            ->join('student_details','student_details.roll_no = student.roll_no')
            ->join('course_details','course_details.roll_no = student.roll_no');
   $query = $this->db->get();
   return $query->row_array();
1 голос
/ 05 июля 2012

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

0 голосов
/ 05 мая 2010
$SqlInfo="select a.name, b.data fromtable1 a, table2 b where a.id=b.a_id";
$query = $this->db->query($SqlInfo);

попробуйте так, вы можете добавить третью таблицу с именем c и добавить команду 'and' в команду sql.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...