我正在处理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);
可行吗?
答案 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.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());