【问题标题】:Give an alias in a join statement without changing the select statement (*) in codeigniter在不更改 codeigniter 中的 select 语句 (*) 的情况下,在 join 语句中提供别名
【发布时间】:2018-06-14 15:43:05
【问题描述】:

我正在处理 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) 的列。

我想在 join 语句中添加一个别名,而不是更改 select 语句 (*),例如:

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

可行吗?

【问题讨论】:

  • 不,这会给你像You have an error in your SQL syntax 这样的错误,但你可以改用子查询
  • 如何进行子查询?
  • 做这样的事情SELECT * FROM sometable t1 WHERE id IN (SELECT id FROM anothertable t2 WHERE t1.id = t2.another_id) AND id = 1;
  • 是的,但这是正常语法,我正在寻找 codeingiter 语法
  • 类似: // 子查询 $mysql = ee()->db->select('id as credit_id')->from('exp_credit_tracker_credit_type'); $subQuery = ee()->db->get_compiled_select($mysql); // 主查询 $sql = ee()->db->select('*') ->from('exp_credit_tracker_assoc') ->join("($subQuery)", NULL, FALSE) ->get() - >结果();

标签: php mysql codeigniter join


【解决方案1】:

希望对您有所帮助:

你的查询应该是这样的:

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

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

【讨论】:

  • 我的查询和那个完全一样,而且它可以工作,但我正在寻找 CodeIgniter 版本,因为我需要清理它并在需要时排除连接部分
  • 希望这对你有用,请检查
猜你喜欢
  • 1970-01-01
  • 2012-02-13
  • 2013-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-12
  • 2020-11-19
  • 1970-01-01
相关资源
最近更新 更多