2017-02-08 2 views

ответ

1

попробовать это:

$this->db->select('u.username, u.user_id'); 
db->where('u. user_id = s.user_id_fk'); 
$this->db->where('s.user_id_fk = '.$id); 
$query = $this->db->get('storylikes s, user u'); 

использование $your_variable = $query->result(); результата

+0

как сохранить этот результат запроса в переменной –

0

вы должны использовать присоединяется вместо этот запрос

$this->db->select('username,user_id'); 
$this->db->from('user'); 
$this->db->join('storylike','storylike.user_id_fk = user.user_id'); 
$this->db->where('storylike.user_id','$id'); 
0

, пока загружается помощник дб ... Вам не нужно делать ничего особенного

$query = $this->db->query('SELECT U.username,U.user_id FROM storylikes S, user U WHERE U.user_id=S.user_id_fk AND S.user_id_fk=$id); 

Использование декартову (перекрестное соединение), делая FROM с 2 таблицами может вызвать некоторые недисциплинированных результаты, если не используется «правильно»

Я полагаю, что если вы пытаетесь просто присоединиться таблицы вместе ваш SQL должен быть

SELECT U.username,U.user_id 
FROM storylikes S, user U 
INNER JOIN user U ON S.user_id = U.user_id_fk 
WHERE S.user_id_fk=$id 

CI QueryBuilder для этого было бы:

$query = $this->db->select('U.username,U.user_id') 
    ->join('user U', 'S.user_id = U.user_id_fk', 'inner') 
    ->where('S.user_id', $id) 
    ->get('user U'); 

Использование правильного соединения для правильных требований является ключевым;

  1. INNER JOIN, чтобы обеспечить как FROM и JOIN таблицы 1 матч за 1 ...
  2. LEFT JOIN, если вы хотите, чтобы у вас есть все данные с вашего из таблицы и любой без результатов в JOIN таблицы показывают, как NULL
  3. ПРАВОЕ СОЕДИНЕНИЕ (напротив слева), чтобы захватить все данные из таблицы JOIN и только соответствующие данные из таблицы FROM.
  4. CROSS (CARTESIAN) ПРИСОЕДИНЯЙТЕСЯ, когда вы хотите ... откровенно ... смять данные вместе ... CROSS JOIN также будет функционировать как INNER JOIN, когда вы оговариваете критерии в инструкции WHERE (как и вы), но по-прежнему используйте правильный JOIN для правильного использования.

Есть и другие доступные соединения, но это основы.