我想在列名称的位置给出一个值,但是它无法识别它并且它给了我错误。这是我的代码:
$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,因为表之间没有关系,在联系表中只有一行。
答案 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!
(所以这个问题是重复的)