在join语句中给出别名而不更改codeigniter中的select语句(*)

时间:2018-06-14 15:43:05

标签: php mysql codeigniter join

我正在处理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);

可行吗?

1 个答案:

答案 0 :(得分:0)

希望这会对您有所帮助:

您的查询应该是这样的:

如果主键和外键具有相同的列名,请使用此选项:

$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.idprimaryforeign密钥匹配

$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());