Codeigniter数据库加入不接受值而不是列名

时间:2012-10-18 11:52:25

标签: mysql database codeigniter activerecord join

  

可能重复:
  Codeigniter ActiveRecord: join backticking

我想在列名称的位置给出一个值,但是它无法识别它并且它给了我错误。这是我的代码:

$this->db->select('*')->from('users')->where('users.ID',$this->session->userdata('user_id'));
$this->db->join('contact','contact.ID = 1','left');
$result =  $this->db->get()->row_array();

问题在于加入,它不接受值。它给了我这个错误

error:

Unknown column '1' in 'on clause'

我必须使用1,因为表之间没有关系,在联系表中只有一行。

3 个答案:

答案 0 :(得分:0)

当你想要加入时,你需要在公共领域进行加入 自然的SQL将是:

select * from users join contact on USERS.COMMON_FIELD = CONTACT.COMMONFIELD where users.id = $this->session->userdata('user_id')

'将此翻译为CI

$this->db->select('*')->from('users'));
$this->db->join('contact','contact.common_field = users=common_field');
$this->db->where('users.ID',$this->session->userdata('user_id'))

你必须在表格之间放置contact.ID = 1);公共字段,

mysql join http://dev.mysql.com/doc/refman/5.0/en/join.html

CodeIgniter加入:http://codeigniter.com/user_guide/database/active_record.html

答案 1 :(得分:0)

感谢每一位回复。我找到了另一种方法,使用此方法:  $this->db->query("SELECT * FROM (users) LEFT JOIN 'contact' ON contact.ID = ? WHERE users.ID = ?",array(1,$user_id)); ,做这个codeigniter不会给我任何错误。

答案 2 :(得分:0)

前段时间我遇到了这个问题,我找到了解决方法,请参阅here

(所以这个问题是重复的)