Mysql
 sql >> база данни >  >> RDS >> Mysql

Стойността на предишния ред трябва да бъде извлечена

Една опция тук би била да направите самостоятелно присъединяване с payment таблица, присъединявайки се към customer_id и order_id колони. Можете да добавите друго извикване на функция за присъединяване и след това да използвате резултата във вашия избор. Следното решение използва необработена заявка, тъй като Codeigniter изглежда не толерира аритметика в условието за присъединяване:

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

Заявката има формата:

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. Mysql High UPDATE SELECT причинява забавяне

  2. Извличане на последния вмъкнат идентификатор с Mysql

  3. не може да се промени таблицата, таблица 'xxx/#sql-ib265' вече съществува

  4. Homebrew brew install mysql дава ... Грешка при задаване на стойност '127.0.0.1' на 'server_id'

  5. Изтрийте първия елемент в базата данни SQL Query