sql >> Database >  >> RDS >> Sqlserver

Krijg gezinsleden

De oplossing die ik heb gevonden is helemaal niet goed. Het geeft het juiste antwoord, maar is erg traag, zelfs voor deze zeer kleine tafel.

 DECLARE @INCLUIDOS TABLE (ID INT)

 INSERT INTO @INCLUIDOS VALUES(1)

 DECLARE @PAST_QUANT INT = 0
 DECLARE @QUANT INT = 1 

 WHILE @QUANT <> @PAST_QUANT
 BEGIN

     SET @PAST_QUANT = @QUANT

     INSERT INTO @INCLUIDOS
        SELECT PARENT 
        FROM PERSONCONN 
        WHERE CHILD IN (SELECT ID FROM @INCLUIDOS)
            AND PARENT NOT IN (SELECT ID FROM @INCLUIDOS)

    INSERT INTO @INCLUIDOS
        SELECT CHILD
        FROM PERSONCONN
        WHERE PARENT IN (SELECT ID FROM @INCLUIDOS)
            AND CHILD NOT IN (SELECT ID FROM @INCLUIDOS)

    SET @QUANT = (SELECT COUNT(*) FROM @INCLUIDOS)

END

SELECT DISTINCT ID FROM @INCLUIDOS

SQL Fiddle



  1. Procedure om alleen te verwijderen als de database hoger is dan sysdate

  2. query invoegen met ajax zonder de hele pagina opnieuw te laden

  3. SELECTEER MAX van COUNT

  4. 4 manieren om uren, minuten en seconden te scheiden van een tijdwaarde in MariaDB