Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wartość poprzedniego wiersza do pobrania

Jedną z opcji jest tutaj samodzielne dołączenie za pomocą payment tabela, dołączając do customer_id i order_id kolumny. Możesz dodać kolejne wywołanie funkcji dołączania, a następnie użyć wyniku w swoim wyborze. Poniższe rozwiązanie wykorzystuje nieprzetworzone zapytanie, ponieważ Codeigniter nie toleruje arytmetyki w warunku złączenia:

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

Zapytanie ma postać:

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. kolejność wierszy podczas wstawiania wielu wierszy w MySQL

  2. Dodaj prefiks do automatycznego przyrostu w mysql db

  3. Wydrukuj wszystkie dane w wielu stronicowaniach

  4. Najszybszy sposób na wstawienie/aktualizację miliona wierszy w Laravel 5.7

  5. bezpieczne przechowywanie hasła dla api bez szyfrowania