Php 在join语句中提供别名,而不更改codeigniter中的select语句(*)
我在espressionengine中处理查询,并使用codeigniter语法对它们进行编码。我的问题是:Php 在join语句中提供别名,而不更改codeigniter中的select语句(*),php,mysql,codeigniter,join,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()->d
$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);
这可行吗?希望这能帮助您:
您的查询应该是这样的:
如果主键和外键具有相同的列名,则使用此选项:
$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());
如果没有,请使用此:
确保在join here中有一个_table.id=stable.id,主键和外键在此匹配
$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语法中有错误一样,但您可以使用子查询而不是如何执行子查询?执行类似以下操作:从某个表t1中选择*,其中id在另一个表t2中选择id,其中t1.id=t2.Other_id和id=1;是的,但这是正常的语法,我在寻找代码集语法,比如://Sub Query$mysql=ee->db->select'id as credit\u id'->from'exp\u credit\u tracker\u credit\u type'$subQuery=ee->db->get\u compiled\u选择$mysql;//主查询$sql=ee->db->从'exp\u credit\u tracker\u assoc'中选择'*'->加入$subQuery,NULL,FALSE->get->result;我的查询是完全一样的一个,它的工作,但我正在寻找CodeIgniter版本,因为我需要清理它,并排除加入部分,如果我需要希望这将为你请检查
$sql = 'your query here';
$query = $this->db->query();
print_r($query->result());