sql >> データベース >  >> RDS >> Sqlserver

家族のメンバーを取得する

    私が見つけた解決策はまったく良くありません。正しい答えが得られますが、この非常に小さなテーブルであっても非常に遅いです。

     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 フィドル



    1. PHPを使用してチェックボックスを使用してmysqlデータベースから複数の行を削除するにはどうすればよいですか?

    2. MySQLのSQLExceptionエラーコードのリストはどこにありますか?

    3. PHPHTML文字列をデータベースに保存する方法

    4. カスタムユーザー登録/ログインスクリプトの作成についてサポートが必要