2015-06-21 45 views
0

我想从表levels, 包含level_idlevel_name, 使用户知道什么是自己的水平选择列名level_name从加盟tabels在数据库中选择科拉姆笨

用户的表命名为users,并包含一个level_iduser_id, 但我得到这个错误 - >

在第列“level_id”不明确

SELECT `level_name` 
FROM `levels` 
    JOIN `users` ON `level_id` = `level_id` WHERE `user_id` = '9' 

在这里它是在模型

public function level_ownprofile($user_id) 
{ 
    $this->db->select('level_name'); 
    $this->db->from('levels'); 
    $this->db->join('users', 'level_id = level_id'); 
    $this->db->where('user_id', $user_id); 
    $query = $this->db->get(); 
    return $query; 
} 

在此先感谢:)

+1

这里的答案能回答你的问题http://stackoverflow.com/a/2788333/2959769 –

+0

在笨 –

回答

1
Select l.level_name 
FROM levels l 
JOIN users u 
ON u.level_id = l.level_id 
and u.user_id = '9' 


public function level_ownprofile($user_id) 
{ 
$this->db->select('level_name'); 
$this->db->from('levels'); 
$this->db->join('users', 'levels.level_id = users.level_id'); 
$this->db->where('user_id', $user_id); 
$query = $this->db->get(); 
return $query; 
} 
+0

在笨这不会工作,这不会工作 –

+1

在这里看看答案,但专注于它的第二条评论... http://stackoverflow.com/questions/28104314/pass-variable-in-join-query-in-codeigniter – AsConfused

1

更改查询

SELECT `level_name` 
FROM `levels` l 
    JOIN `users` u ON `u`.`level_id` = `l`.`level_id` 
WHERE `user_id` = '9' 

如果你喜欢表的代码名称别名方法,它更短,更易于阅读。

或者

SELECT `level_name` 
FROM `levels` 
    JOIN `users` ON `users`.`level_id` = `levels`.`level_id` 
WHERE `user_id` = '9' 

如果您prefere到处使用完整的表名。

因为这两个表都包含名称为level_id的列,所以查询分析器需要知道您正在寻找哪一个。

在笨尝试

public function level_ownprofile($user_id) 
{ 
    $this->db->select('level_name'); 
    $this->db->from('levels l'); 
    $this->db->join('users u', 'u.level_id = l.level_id'); 
    $this->db->where('user_id', $user_id); 
    $query = $this->db->get(); 
    return $query; 
} 
+0

这将无法在codeigniter工作 –

+1

尝试我添加了一个codeigniter版本 – RiggsFolly

1
public function level_ownprofile($user_id) 
{ 
    $this->db->select('l.level_name'); 
    $this->db->from('levels as l'); 
    $this->db->join('users as u', 'l.level_id = u.level_id'); 
    $this->db->where('l.user_id', $user_id); 
    $query = $this->db->get(); 
    return $query->results(); 
}