在join语句中提供别名,而不更改codeigniter中的select语句(*)

6fe3ivhb  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(359)

我在espressionengine中处理查询,并使用codeigniter语法对它们进行编码。我的问题是:

$sql = ee()->db->select('*');
$sql = ee()->db->from('sometable');
$sql = ee()->db->where('id', $hidden_id);
$sql = ee()->db->get();

我想添加一个连接以获得另一个这样的值:

$sql = ee()->db->join('another_table', 'sometable.another_table_id, another_table.id);

现在的问题是,在join语句中,我添加了另一个同名(id)的列。
我不想更改select语句(*),而是想在join语句中添加一个别名,例如:

$sql = ee()->db->join('another_table', 'sometable.another_table_id, another_table.id as another_table_id);

可行吗?

j2qf4p5b

j2qf4p5b1#

希望这能帮助您:
您的查询应该是这样的:
如果主键和外键具有相同的列名,则使用此选项:

$this->db->select('*');
$this->db->from('sometable stable');
$this->db->join('(SELECT id  
FROM another_table ) as a_table' ,'id');
$query = $this->db->get();
print_r($query->result());

如果没有,请使用:
一定要加入这里 a_table.id = stable.id , primary 以及 foreign 此处为关键匹配项

$this->db->select('*,a_table.id as credit_id');
$this->db->from('sometable stable');
$this->db->join('another_table a_table','a_table.id = stable.id');
$query = $this->db->get();

print_r($query->result());

您还可以借助 $this->db->query(); ```
$sql = 'your query here';
$query = $this->db->query();
print_r($query->result());

相关问题