sql - 如果 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);
}
解决方案
您需要使用 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);
推荐阅读
- r - 您可以在简单的“as.numeric”函数中使用“starts_with”作为简写来查询多列吗?
- javascript - 如何获取树的每个节点的父母和所有孩子的数组?
- api - SOAPUI 和测试轨集成
- postgresql - 基于多列对记录进行排序
- python - TypeError:预期的 str、字节或 os.PathLike 对象,而不是 int
- ios - 在后台状态后打开应用程序时黑屏
- postgresql - KnexJS Postgres:为原始查询添加额外的双引号
- angular - 如何在引导表中的每一行下方添加水平步进器
- html - 悬停时无法修复图像溢出?
- java - Spring 5.x 与 Spring Data