2015-06-21 78 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(); 
}