app/Http/Controllers/AdminTreesController.php
private function duplicateXrefs(Tree $tree): array
    {
        $subquery1 = DB::table('individuals')
            ->where('i_file', '=', $tree->id())
            ->select(['i_id AS xref', DB::raw("'INDI' AS type")])
            ->union(DB::table('families')
                ->where('f_file', '=', $tree->id())
                ->select(['f_id AS xref', DB::raw("'FAM' AS type")]))
            ->union(DB::table('sources')
                ->where('s_file', '=', $tree->id())
                ->select(['s_id AS xref', DB::raw("'SOUR' AS type")]))
            ->union(DB::table('media')
                ->where('m_file', '=', $tree->id())
                ->select(['m_id AS xref', DB::raw("'OBJE' AS type")]))
            ->union(DB::table('other')
                ->where('o_file', '=', $tree->id())
                ->whereNotIn('o_type', ['HEAD', 'TRLR'])
                ->select(['o_id AS xref', 'o_type AS type']));

        $subquery2 = DB::table('change')
            ->where('gedcom_id', '<>', $tree->id())
            ->select(['xref AS other_xref'])
            ->union(DB::table('individuals')
                ->where('i_file', '<>', $tree->id())
                ->select(['i_id AS xref']))
            ->union(DB::table('families')
                ->where('f_file', '<>', $tree->id())
                ->select(['f_id AS xref']))
            ->union(DB::table('sources')
                ->where('s_file', '<>', $tree->id())
                ->select(['s_id AS xref']))
            ->union(DB::table('media')
                ->where('m_file', '<>', $tree->id())
                ->select(['m_id AS xref']))
            ->union(DB::table('other')
                ->where('o_file', '<>', $tree->id())
                ->whereNotIn('o_type', ['HEAD', 'TRLR'])
                ->select(['o_id AS xref']));

        return DB::table(DB::raw('(' . $subquery1->toSql() . ') AS sub1'))
            ->mergeBindings($subquery1)
            ->joinSub($subquery2, 'sub2', 'other_xref', '=', 'xref')
            ->pluck('type', 'xref')
            ->all();
    }
private function duplicateXrefs(Tree $tree): array
    {
        $subquery1 = DB::table('individuals')
            ->where('i_file', '=', $tree->id())
            ->select(['i_id AS xref', DB::raw("'INDI' AS type")])
            ->union(DB::table('families')
                ->where('f_file', '=', $tree->id())
                ->select(['f_id AS xref', DB::raw("'FAM' AS type")]))
            ->union(DB::table('sources')
                ->where('s_file', '=', $tree->id())
                ->select(['s_id AS xref', DB::raw("'SOUR' AS type")]))
            ->union(DB::table('media')
                ->where('m_file', '=', $tree->id())
                ->select(['m_id AS xref', DB::raw("'OBJE' AS type")]))
            ->union(DB::table('other')
                ->where('o_file', '=', $tree->id())
                ->whereNotIn('o_type', ['HEAD', 'TRLR'])
                ->select(['o_id AS xref', 'o_type AS type']));

        $subquery2 = DB::table('change')
            ->where('gedcom_id', '<>', $tree->id())
            ->select(['xref AS other_xref'])
            ->union(DB::table('individuals')
                ->where('i_file', '<>', $tree->id())
                ->select(['i_id AS xref']))
            ->union(DB::table('families')
                ->where('f_file', '<>', $tree->id())
                ->select(['f_id AS xref']))
            ->union(DB::table('sources')
                ->where('s_file', '<>', $tree->id())
                ->select(['s_id AS xref']))
            ->union(DB::table('media')
                ->where('m_file', '<>', $tree->id())
                ->select(['m_id AS xref']))
            ->union(DB::table('other')
                ->where('o_file', '<>', $tree->id())
                ->whereNotIn('o_type', ['HEAD', 'TRLR'])
                ->select(['o_id AS xref']));

        return DB::table(DB::raw('(' . $subquery1->toSql() . ') AS sub1'))
            ->mergeBindings($subquery1)
            ->joinSub($subquery2, 'sub2', 'other_xref', '=', 'xref')
            ->pluck('type', 'xref')
            ->all();
    }
private function duplicateXrefs ( Tree $ tree ) : array { $ subquery1 = DB :: table ( 'individuals' ) -> where ( 'i_file' , '=' , $ tree -> id ( ) ) -> select ( [ 'i_id AS xref' , DB :: raw ( "'INDI' AS type" ) ] ) -> union ( DB :: table ( 'families' ) -> where ( 'f_file' , '=' , $ tree -> id ( ) ) -> select ( [ 'f_id AS xref' , DB :: raw ( "'FAM' AS type" ) ] ) ) -> union ( DB :: table ( 'sources' ) -> where ( 's_file' , '=' , $ tree -> id ( ) ) -> select ( [ 's_id AS xref' , DB :: raw ( "'SOUR' AS type" ) ] ) ) -> union ( DB :: table ( 'media' ) -> where ( 'm_file' , '=' , $ tree -> id ( ) ) -> select ( [ 'm_id AS xref' , DB :: raw ( "'OBJE' AS type" ) ] ) ) -> union ( DB :: table ( 'other' ) -> where ( 'o_file' , '=' , $ tree -> id ( ) ) -> whereNotIn ( 'o_type' , [ 'HEAD' , 'TRLR' ] ) -> select ( [ 'o_id AS xref' , 'o_type AS type' ] ) ) ; $ subquery2 = DB :: table ( 'change' ) -> where ( 'gedcom_id' , '<>' , $ tree -> id ( ) ) -> select ( [ 'xref AS other_xref' ] ) -> union ( DB :: table ( 'individuals' ) -> where ( 'i_file' , '<>' , $ tree -> id ( ) ) -> select ( [ 'i_id AS xref' ] ) ) -> union ( DB :: table ( 'families' ) -> where ( 'f_file' , '<>' , $ tree -> id ( ) ) -> select ( [ 'f_id AS xref' ] ) ) -> union ( DB :: table ( 'sources' ) -> where ( 's_file' , '<>' , $ tree -> id ( ) ) -> select ( [ 's_id AS xref' ] ) ) -> union ( DB :: table ( 'media' ) -> where ( 'm_file' , '<>' , $ tree -> id ( ) ) -> select ( [ 'm_id AS xref' ] ) ) -> union ( DB :: table ( 'other' ) -> where ( 'o_file' , '<>' , $ tree -> id ( ) ) -> whereNotIn ( 'o_type' , [ 'HEAD' , 'TRLR' ] ) -> select ( [ 'o_id AS xref' ] ) ) ; return DB :: table ( DB :: raw ( '(' . $ subquery1 -> toSql ( ) . ') AS sub1' ) ) -> mergeBindings ( $ subquery1 ) -> joinSub ( $ subquery2 , 'sub2' , 'other_xref' , '=' , 'xref' ) -> pluck ( 'type' , 'xref' ) -> all ( ) ; }
Every XREF used by this tree and also used by some other tree

@param Tree $tree

@return string[]
Every XREF used by this tree and also used by some other tree