gpt4 book ai didi

php - 查询获取相关表中的数据

转载 作者:可可西里 更新时间:2023-11-01 07:05:16 26 4
gpt4 key购买 nike

有两个表:admin,news

结构是这样的:

admin
-----
id
name

news
-----
id
createBy
updateBy

目前createBy和updateBy存储的是admin id,我想获取createBy和updateBy的admin name,如何实现?谢谢

这是我在 codeigniter 中使用的

$this->db->select('*');
$this->db->from('news,admin');
$this->db->where('id', $id);
$this->db->where('admin.id', 'news.updateBy');

无论如何,欢迎使用 sql 查询,我会将其转换为 codeigniter 语法。感谢您的帮助

最佳答案

这是一个查询,它将提取一个特定的新闻 ID,并从您的 admins 表中获取创建者和更新者的值:

select
adu.id sd as updateID,
adu.name as updateName,
adc.id as createID,
adc.name as createName
from
news ns
left outer join admin adu
on ns.updateBy=adu.id
left outer join admin adc
on ns.createBy=adc.id
where
news.id=1

我已经两次加入管理员表——因为管理员更新可能与管理员创建不同——如果任一字段为空,内部连接将不起作用。这样做还允许您选择您想要的(创建或更新)但仍将它们放在同一行数据中。

如果这正是您要查找的内容,那么这是一个足够简单的查询,您可能会从阅读此 question and answer 中受益匪浅。我放在一起更详细地解释这样的查询。它详细展示和解释了内部和外部连接、数据分组和聚合。

编辑:我在查询中添加了列别名,这意味着您可以选择您想要的别名。我写的和链接到的文章也详细解释了:)

关于php - 查询获取相关表中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24114582/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com