Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Iterieren Sie über die Zeilen einer zweiten Tabelle, um die Ergebnismenge zurückzugeben

Verwenden Sie hier einen Self Join auf table_b Tabelle, wobei die Join-Bedingung darin besteht, dass die table_a_id Werte stimmen überein, aber label_y> label_x .

SELECT
    b1.table_a_id,
    b1.label_x,
    b2.label_y
FROM table_a a
INNER JOIN table_b b1
    ON b1.table_a_id = a.table_a_id
INNER JOIN table_b b2
    ON b2.table_a_id = b1.table_a_id AND
       b2.label_y > b1.label_x
ORDER BY
    b1.table_a_id,
    b1.label_x,
    b2.label_y;

Demo