sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan får du den laveste, fælles overordnede for 2 rækker i rekursiv tabel (SQL)

Et par mindre redigeringer af Quassnois svar, og det virker:

WITH
    hier1 (id, parent) AS (
    SELECT      id, parent
    FROM        table
    WHERE       id = @user1
    UNION ALL
    SELECT      id, parent
    FROM        table l, hier1 h
    WHERE       l.id = h.parent
    ),
    hier2 (id, parent) AS (
    SELECT      id, parent
    FROM        table
    WHERE       id = @user2
    UNION ALL
    SELECT      id, parent
    FROM        table l, hier1 h
    WHERE       l.id = h.parent
    )
SELECT  TOP 1 hier1.id
FROM    hier1, hier2
WHERE   hier1.id = hier2.id


  1. Oracle:Hvad betyder 'udfør øjeblikkeligt'?

  2. Er PDO-udsagn automatisk escaped?

  3. Hvorfor genkender SSIS ikke linjefeed {LF} rækkeafgrænser under import af UTF-8 flad fil?

  4. Sådan flettes 2 eller flere datointerval til 1