【问题标题】:Codeigniter Join tables get name with idCodeigniter 连接表获取带有 id 的名称
【发布时间】:2014-02-24 11:20:40
【问题描述】:

我有以下表格:


生物:

id、名称、图标


示例:

3、狐狸、狐狸.png



路线:

id、名字、mob1、mob2、mob3、mob4、mob5、mob6、mob7、mob8


示例:

1, first_route, 1, 3, 4, 7 ,2 ,4, 5 ,6


在 mob1,2,n,8 分配的值是来自 mob 表的不同记录的 ID。 (小怪的基本顺序)

我想要的是获取 mob1,2,3 等的值,将它们与 mob 的 ID 进行比较,然后获取 mob 的名称。

所以最后当我显示我拥有的数据时:

路由ID、路由名称、mob1名称、mob2名称等

这是模型:

function get_all($limit=null,$offset=null) {
            $this->db->select('route.*, mob.*');
            $this->db->from('route', 'mob');
            $this->db->join('mob', 'mob.id = route.mob1', 'left');
            $this->db->join('mob AS m1', 'm1.id = route.mob1', 'left');
            $this->db->join('mob AS m2', 'm2.id = route.mob2', 'left');
            $this->db->join('mob AS m3', 'm3.id = route.mob3', 'left');
            $this->db->join('mob AS m4', 'm4.id = route.mob4', 'left');
            $this->db->join('mob AS m5', 'm5.id = route.mob5', 'left');
            $this->db->join('mob AS m6', 'm6.id = route.mob6', 'left');
            $this->db->join('mob AS m7', 'm7.id = route.mob7', 'left');
            $this->db->join('mob AS m8', 'm8.id = route.mob8', 'left');
            $res = $this->db->get();
            return $res->result_array();

我能得到小怪的ID,但不能得到名字,我做错了什么?

【问题讨论】:

    标签: sql codeigniter join


    【解决方案1】:

    请您尝试更改这两行:

    $this->db->select('route.*, mob.*');
    $this->db->from('route', 'mob');
    

    $this->db->select('*');
    $this->db->from('route');
    

    【讨论】:

    • 同样的结果,我得到了最后一个 (mob8) 的 ID 和名称和图标。如果我删除 $this->db->join('mob AS m8', 'm8.id = route.mob8', 'left');我正在正确获取 mob7 的信息等。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-16
    • 2013-03-07
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    • 2018-08-12
    • 2016-05-02
    相关资源
    最近更新 更多