【问题标题】:selecting a colum from joined tabels in database Codeigniter从数据库 Codeigniter 中的连接表中选择一列
【发布时间】:2015-06-21 14:15:16
【问题描述】:

我正在尝试从表 levels 中选择列名 level_name, 其中包含level_idlevel_name, 让用户知道他们的等级,

名为users 的用户表包含level_iduser_id, 但我收到此错误 ->

on 子句中的列 '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;
}

提前感谢:)

【问题讨论】:

标签: php mysql codeigniter


【解决方案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'

如果您更喜欢在任何地方使用完整的表名。

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

在codeigniter中尝试

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;
}

【讨论】:

    【解决方案2】:
    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;
    }
    

    【讨论】:

    【解决方案3】:
    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();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多