首页 > 解决方案 > 如果 2 列具有相同的数据 - Codeigniter,如何比较 SQL 中的两个表?

问题描述

如果使用 SQL 查询具有相同的数据,如何比较两个不同表中的两列?我正在研究 Codeigniter 框架。表一名为:ci_admin,列名为:admin_id。表二叫:active_ingredient,列名是user_id。

我正在使用 datatable_json 函数来查看表中的所有数据。

当我使用下面的代码时,它显示了数据库中的所有数据,我需要显示 admin_id = user_id 的数据

模型中的此代码:

        $wh =array();
        $SQL ='SELECT * FROM active_ingredient';
        $wh[] = "SELECT 1
        FROM   ci_admin
        WHERE  ci_admin.admin_id = active_ingredient.user_id";

        if(count($wh)>0)
        {               $WHERE = implode(' and ',$wh);
            return $this->datatable->LoadJson($SQL,$WHERE);
        }
        else
        {
            return $this->datatable->LoadJson($SQL);
        }

标签: sqlcodeigniterdatatable

解决方案


您需要使用 JOINS 从具有比较列的多个表中获取数据

$SQL = 'SELECT active_ingredient.*,ci_admin.* FROM active_ingredient 
LEFT JOIN ci_admin on (active_ingredient.user_id = ci_admin.admin_id)';

然后返回您上面的 SQL 查询

return $this->datatable->LoadJson($SQL);

推荐阅读