合并来自相同 table mysql knex 的其他结果

Joining other results from same table mysql knex

我想从同一个 table 中获取与 event_id 匹配的其他 user_id。我尝试在 leftJoin 和 outerLeftJoin 中使用子查询和 this.on 函数。无法使用以下代码解决 'not unique table/alias' 错误。

knex('user_2_event')
            .select(
                'event.*',
                'user_2_event.user_id as main_user_id'
            )
            .where('user_2_event.user_id',17)
            .join('event', 'event.event_id', 'user_2_event.event_id')
            .leftOuterJoin('user_2_event', function(){
                this.on('user_2_event.event_id', '=', 'event.event_id') 
            })

或者用这个代替上面的 leftOuterJoin,它会产生一个 'error with my syntax'.

            .join(
                knex('user_2_event')
                .select('user_2_event.user_id as other_user')
                .where('user_2_event.event', '=','event.event_id')
            )

在以各种方式搜索有关以不同方式获取数据的指导后 table(但是有人用技术术语表达了这一点),有人建议我在同一个 table。瞧,快速简单,无需担心连接函数和子查询。

knex('user_2_event as e1')
            .select(
                'event.*',
                'e1.user_id as user_id',
                'e2.user_id as other_id'
            )
            .where('e1.user_id',17)
            .join('event', 'event.event_id', 'e1.event_id')
            .leftJoin('user_2_event as e2', 'e2.event_id', 'event.event_id')