mysql - 在 where 子句中获取未知列

标签 mysql codeigniter

收到类似错误

Unknown column 'code' in 'where clause'
SELECT * FROM `payment` WHERE `code` = 'ORD00023'

尽管我使用了连接方法来连接支付表和服务表。在这里我找到了前一行值的解决方案,但它没有得到。

这是我的模型

public function order_balance($order_code)
{
$this->db->query("
SELECT p1.*
      , p2.balance AS previous_balance 
  FROM payment p1 
  JOIN payment p2 
    ON p1.order_id = p2.order_id + 1 
   AND p1.customer_id = p2.customer_id 
  LEFT 
  JOIN services s 
    ON p1.customer_id = s.customer_id 
 ORDER BY p1.id DESC
");
$query = $this->db->get_where('payment p1', array('code' => $order_code));
return $query;
}

这是我的餐 table 付款

id  order_id    customer_id  amount     actual_amount   paid_amount     balance     type
25  11            16                        100.00        50.00         50.00       Cash
26  12            16                        200.00        100.00        100.00      Cash
27  13            16                        150.00        100.00        50.00       Cash
28  14            16                        300.00        250.00        50.00       Cash
29  14            16                        170.00        100.00        70.00       Cash
30  15            16         100            170.00        70.00         100.00      Cash
31  16            16         400            500.00        300.00        200.00      Cash

这是餐 table 服务

id  code      customer_id   particulars     
11  ORD00011    16              phone   
12  ORD00012    16              gdf     
13  ORD00013    16              ghgfh   
14  ORD00014    16               tv     
15  ORD00015    16              ghfg    
16  ORD00016    16               tv     
17  ORD00017    16              gdfg    
18  ORD00018    16              desk    
19  ORD00019    16              gdf  

这里我已经加入了付款表和服务表,但仍然没有得到

看我的 table

id  order_id    customer_id     amount  actual_amount   paid_amount     balance     type
50  31             16           650         750.00        250.00        500.00      Cash
51  1              16           100         600.00        300.00        300.00      Cash
52  2              16           100         400.00        200.00        200.00      Cash
53  3              16           800         1000.00       600.00        400.00      Cash
54  4              15           400         400.00        300.00        100.00      Cash
55  5              15           500         600.00        575.00        25.00       Cash
56  6              16           350         750.00        600.00        150.00      Cash

在此表中,16 的 customer_id 的前一行值为余额 25,并且情况如下,但我希望将最后一个 customer_id 16 余额值作为前一个 customer_id 16 值。 例如我的结果应该是这样的

id     order_id    customer_id   amount   actual_amount   paid_amount   balance     type
56       6         16          350          750.00        600.00        400.00      Cash

最佳答案

你想要这个吗?

$this->db->query("SELECT p1.*, p2.balance AS previous_balance FROM payment p1 INNER JOIN payment p2 ON p1.order_id = p2.order_id + 1 AND p1.customer_id = p2.customer_id LEFT JOIN services s ON p1.customer_id = s.customer_id AND s.code = ? ORDER BY p1.id DESC", array($order_code));

关于mysql - 在 where 子句中获取未知列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37803940/

相关文章:

php - 使用 PHP 和 MySql 创建考勤表

mysql - MySQL 中奇怪的排序错误?

mysql - 如何将数据库记录存储到哈希 ruby​​ on rails

php - CodeIgniter PHP - 如何随机选择语言类消息?

php - select 中的动态选项显示两个元素之间的空文本

codeigniter - 如何将 codeigniter 站点从本地主机传输到实时服务器

php - Codeigniter + Chrome 错误 (ERR_RESPONSE_HEADERS_TOO_BIG)。怎么解决?

javascript - 重新显示来 self 的服务器的数据/缺少一个步骤

android - 在 android 中使用 like 和 where 子句进行删除

php - 我需要知道为什么我的代码告诉我 $id 变量未定义