JOIN 语句中的 CodeIgniter ActiveRecord 字段名称

2024-02-07

我正在构建一个涉及 JOIN 的查询。这是我第一次使用 Active Record 进行数据库操作,但遇到了一些障碍。

我想加入一个名为companies to the users表,这样我就可以获取用户所在的公司名称等。我已经成功地完成了这种操作,如下所示:

function get_profile_by_username($username)
{
    $this->db->join('companies', $this->table_name.'.company_id = companies.id');
    $this->db->where('LOWER(username)=', strtolower($username));
    $query = $this->db->get($this->table_name);
    if ($query->num_rows() == 1) return $query->row();
    return NULL;
}

然而问题是,中的字段companies, 他们是id and name在该对象中返回,简单地称为name.

通常,当我编写原始查询时,我会给表提供别名,结果会是这样的u.company_id, c.name。所以我想知道name与用户无关,但当然是公司名称。尽管现在不是问题,但将来可能会出现问题,id列显然不能共存于结果集中,因此其中一个会被覆盖!

我们如何才能区分来自某些表的字段?或者是否有更好的方法来进行表连接并使用连接的查询数据集/对象?

Edit:

如果我将其作为原始查询来执行,我会这样做:

SELECT u.id, u.username, c.name
FROM users AS u
JOIN companies AS c
ON c.id = u.company_id
WHERE u.username = 'foobar';

这很好,但如果我尝试在活动记录中这样做,我认为这是非常糟糕的做法,如果它真的有效的话。


如果你想从表中选择一些特定的列使用db->select()。您可以为表指定别名,添加一些条件等。发送第二个参数FALSE不要转义特殊字符。

$this->db->select('u.id, u.username, c.name', false);
$this->db->from('user as u');
$this->db->join('companies as c', 'u.company_id = c.id');
$this->db->where('LOWER(u.username)=', strtolower('foobar'));
$query = $this->db->get();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JOIN 语句中的 CodeIgniter ActiveRecord 字段名称 的相关文章

随机推荐

  • Jboss Java EE 容器和 ExecutorService

    我有一个独立的 java 应用程序 它使用 ExecutorService 并行处理多个作业 ExecutorService es Executors newFixedThreadPool 10 我现在想在 EJB bean 中重复使用相同
  • 手臂上的推入和弹出

    我真的不明白堆栈命令或堆栈一般如何工作 说如果我有 PUSH R3 POP R3 第 1 行 这是否意味着 R3 的内容将被放入堆栈顶部 如果 R3 改变 堆栈的内容会改变吗 第 2 行 在第二行中 堆栈顶部的内容是否会从堆栈移至 R3 中
  • 将左对齐的短文本块居中

    使用 margin 0 auto 可以轻松地将长文本居中 并使用边距或填充控制距离 但是 是否可以在不知道宽度以及该文本是否左对齐的情况下将文本居中 将短文本居中 文本左对齐 我不知道宽度 这是要检查的示例 http jsfiddle ne
  • 如何在 iPhone 的自定义导航栏中创建导航栏项目?

    我创建了一个自定义视图 并添加了一个 Web 视图作为该自定义视图的子视图 我以编程方式创建了一个导航栏 现在我想在该视图中创建一个左或右导航栏按钮 navigBar UINavigationBar alloc initWithFrame
  • 实体框架包含左连接这可能吗?

    我有以下表格 教室 班级ID 班级名称 学生班级 学生ID 班级ID 学生 学生ID 学生姓名等 学生描述 学生描述 ID 学生 ID 学生描述 我想检索学生的所有信息 1 在 sql 中 我会执行如下操作并获取有关学生的所有信息 sele
  • Powershell ConvertFrom-Json 意外地从包含字符串的单个项目数组生成字符串而不是对象数组

    文件 array json bogus PS C Users Me gt Get Content array json ConvertFrom Json NoEnumerate GetType IsPublic IsSerial Name
  • javaFX 中带有 fxml 文件的 Maven 可执行 jar

    我想创建一个可执行的jar 我读了如何制作 MANIFEST MF 但我用 Maven 读起来要容易得多 http www springone2gx com blog scott leberknight 2008 06 creating e
  • 不使用 for 循环检索 Pyomo 解决方案

    我正在努力寻找一种有效的方法来检索优化问题的解决方案 该解决方案由大约 200K 个变量组成 我希望将这些变量放在 pandas DataFrame 中 在网上搜索后 我发现访问变量的唯一方法是通过 for 循环 如下所示 instance
  • 核心数据关系未与 RESTkit 映射

    我正在努力使用 RESTkit 0 20 0 pre6 获得核心数据关系的正确映射 我想映射这个 JSON items id 2001 itemAttr1
  • 将集合流合并为一个集合 - Java 8

    所以我有一个Stream
  • 使用 laravel 中自动生成的访问令牌将图像上传到 firebase 存储桶

    我遵循这个link https laravelwithfirebase blogspot com 2020 07 chapter 19 how to upload image to firebase storage from laravel
  • 在部分 CHAR 列上创建索引

    我有一个 CHAR 250 列用作 varchar 24 列的外键 在 MySQL 中 我记得我可以创建一个指定列 24 的索引 以便在最左边的 24 个字符上创建索引 这在 MS SQL Server 上似乎不可能 我的问题是这样的 是否
  • Laravel / 多 TLD 的主机设置

    基本上我已经写了大约五遍了 仍然不知道如何正确提问 所以这里 我想要两个域名示例 net and 示例信息我已经注册了 我希望他们指向我正在构建的一个应用程序 然后希望使用 Laravel 将两个不同的域路由到自己的页面 这是我尝试过的以及
  • Docker:本地 MySQL 卷的权限被拒绝

    我是 Docker 新手 不太了解 Linux 我正在尝试为本地发展构建自己的环境Docker 我在用着docker 撰写公用事业 我想将 MySQL 数据存储在本地卷中 当我跑步时docker compose build and dock
  • 使用 ASP.NET 代码中的凭据从网络位置读取文件

    我想从网络上存在的文件夹中读取文件 当我尝试手动访问此文件夹时 从运行命令给出类似路径 ABCServer 文档 它要求我提供凭据 用户名和密码 提供正确的凭据后 我可以访问 读取文件 当我尝试从 ASP NET 中的 C 代码读取相同的文
  • Python 命名元组的可变默认参数

    我发现了一种让命名元组使用默认参数的巧妙方法here https stackoverflow com a 18348004 2529619 from collections import namedtuple Node namedtuple
  • SKPhysicsContact有什么方法可以确定A和B哪个物体?

    在 SpriteKit 中 我们在 didBeginContact 方法中检测到 但这看起来有点愚蠢做这样的事情 func didBeginContact 联系人 SKPhysicsContact if let contactA conta
  • 在没有图形环境的Linux下运行Matlab?

    我将使用 SSH 在远程 Linux 服务器上运行 Matlab 程序 我想知道如何在Linux中仅使用命令行运行Matlab 这意味着没有图形环境 Thanks 使用以下标志启动 MatLab matlab nodesktop nojvm
  • 自动工具和 -Wl,-whole-archive

    是否可以告诉自动工具使用 Wl whole archive 标志链接库之一 生成文件 am bin PROGRAMS pktanon pktanon SOURCES main cpp pktanon DEPENDENCIES lib LIB
  • JOIN 语句中的 CodeIgniter ActiveRecord 字段名称

    我正在构建一个涉及 JOIN 的查询 这是我第一次使用 Active Record 进行数据库操作 但遇到了一些障碍 我想加入一个名为companies to the users表 这样我就可以获取用户所在的公司名称等 我已经成功地完成了这