Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Giá trị hàng trước sẽ được tìm nạp

Một tùy chọn ở đây là tự tham gia với payment bảng, tham gia trên customer_idorder_id cột. Bạn có thể thêm một lệnh gọi hàm tham gia khác và sau đó sử dụng kết quả trong lựa chọn của bạn. Giải pháp sau sử dụng một truy vấn thô vì Codeigniter dường như không chấp nhận số học trong điều kiện kết hợp:

public function order_balance($order_code)
{
    $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 ORDER BY p1.id DESC");
    $query = $this->db->get_where('p1', array('code' => $order_code));
    return $query->previous_row();
}

Truy vấn có dạng:

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
ORDER BY p1.id DESC


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khóa siêu dữ liệu trên MySQL 5.7, không tìm thấy quá trình khóa?

  2. xampp mysql Không thể khởi tạo nhiều cấu trúc chính

  3. Không thể chèn GeomFromText ('POINT (..)') trong MySQL

  4. Định dạng một phần ngày không xác định với DateTime () từ cơ sở dữ liệu?

  5. Cách thoát khỏi dấu ngoặc kép trong Doctrine