use*_*104 5 php mysql sql codeigniter
有两个表:管理员,新闻
结构是这样的:
admin
-----
id
name
news
-----
id
createBy
updateBy
Run Code Online (Sandbox Code Playgroud)
目前createBy和updateBy存储了admin id,我想得到createBy和updateBy的管理员名称,如何实现呢?谢谢
这是我在codeigniter中使用的
$this->db->select('*');
$this->db->from('news,admin');
$this->db->where('id', $id);
$this->db->where('admin.id', 'news.updateBy');
Run Code Online (Sandbox Code Playgroud)
无论如何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
Run Code Online (Sandbox Code Playgroud)
我已经两次加入管理员表 - 因为管理员更新可能与管理员创建不同 - 如果任一字段为空,则内部联接不起作用.执行此操作还可以选择您想要的(创建或更新),但仍然可以将它们放在同一行数据中.
如果这是你正在寻找的,那么这是一个直截了当的查询,你可能真的从阅读这个问题和答案中受益,我把它放在一起来更详细地解释这样的查询.它详细显示和解释了内部和外部联接,数据分组和聚合.
编辑:我在查询中添加了列别名,这意味着您可以选择所需的列别名.我写的和链接的文章也详细解释了:)
归档时间: |
|
查看次数: |
65 次 |
最近记录: |