PHP到Codeigniter语法-从db/form输入中进行减法选择


PHP to Codeigniter syntax - Subtraction selecting from db / form input

我正试图将php-mysql语句转换为Codeigner语法。该代码从一个数据库中选择所有内容,但区域差等于两个表单输入彼此相减。非常感谢您的帮助。

PHP版本

select * from zone_cost where zone_diff =
@(
(select zone from station_zone where station ='FORMINPUT') - (select zone from station_zone where station ='FORMINPUT')
);

代码点火器尝试版本

$zd = (
$this->db->select('zone');
$this->db->get_where('station_zone','station' => $this->form->input('station'));
) - ($this->db->select('zone');
$this->db->get_where('station_zone','station' => $this->form->input('station2'));
);
$this->db->select('zone_cost');
$this->db->where('zone_diff', $zd);

我认为您应该使用mysql:进行子操作

SELECT
station_zone.zone-sz2.zone as ZoneDiff
FROM station_zone
JOIN station_zone AS sz2 ON (sz2.station="station2")
WHERE station_zone.station="station1"

它没有经过测试,但我认为您可以使用类似的查询。在这之后,您可以组合您的主查询,这样您只需要一个查询就可以"回答"您的完整数据问题。

您可以检查CodeIgniter的干净语法,如下所示。

$this->db->select('(column2 - column1) AS `remains_value`')->get_where('tablename1', array('pk' => $pk_val))->row_array();

我不知道这个问题是否公开。但我回答这个问题的方式只是在查询中减去两列,这可能对未来的refer有所帮助。

感谢