sql >> Database teknologi >  >> RDS >> PostgreSQL

SQL-forespørgsel:Hent-ordnede rækker fra en tabel

Brug en rekursiv forespørgsel (PostgreSQL version 8.4 eller nyere):

/* test data: CREATE TABLE foo (id, r_id, a_id, p_id) AS SELECT 1,9,9,0 UNION ALL SELECT 2,9,105,108 UNION ALL SELECT 3,9,102,9 UNION ALL SELECT 4,9,106,105 UNION ALL SELECT 5,9,108,102 ; */ -- the query you need: WITH RECURSIVE sub(s_id, s_r_id, s_a_id, s_p_id, row) AS ( SELECT id, r_id, a_id, p_id, 1 AS row FROM foo WHERE p_id = 0 UNION ALL SELECT id, r_id, a_id, p_id, (row + 1) FROM foo JOIN sub ON s_a_id = p_id ) SELECT * FROM sub ORDER BY row;

  1. com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException:Kan ikke kalde rollback, når autocommit=true

  2. PHP:oci_bind_by_name og tidsstempelfelt resulterer i ORA-01461:kan kun binde en LONG værdi til indsættelse i en LONG kolonne

  3. Levenshtein:MySQL + PHP

  4. Opret en dynamisk navnetabel med Prepared Statement i java