2017-12-09 9 views
1

多対多の関係のために接合テーブルを使用して結合を行う方法を理解しようとしています。私は続けることでそれを設定しましたが、自分の理由から私はknexを好む。私は、これらの結合を接合テーブルを使って行う方法をよりよく理解するために、クエリをknexに変換しようとしています。sequelizeクエリをknxに変換

基本的に私はmemberseventsと接合テーブルmembers_eventsを持っています。私の結果は次のようになります:

[{ 
    event_id, 
    title, 
    description 
    members: [ 
     { 
     member_id, 
     etc 
     }... 
    ] 
}...] 

この正しいフォーマットは、sequelizeを使用して取得します。動作する続行クエリによって生成されるコードはこれです。

SELECT "event".*, "members"."id" 
    AS "members.id", "members"."name" 
    AS "members.name", "members->members_events"."createdAt" 
    AS "members.members_events.createdAt", "members->members_events"."updatedAt" 
    AS "members.members_events.updatedAt", "members->members_events"."memberId" 
    AS "members.members_events.memberId", "members->members_events"."eventId" 
    AS "members.members_events.eventId" 
    FROM (SELECT "event"."id", "event"."title" FROM "events" AS "event" LIMIT 15) 
    AS "event" 
    LEFT OUTER JOIN ("members_events" AS "members->members_events" 
    INNER JOIN "members" AS "members" 
    ON "members"."id" = "members->members_events"."memberId") 
    ON "event"."id" = "members->members_events"."eventId"; 

可能であれば、knex.rawクエリではなく、これをknexクエリに変換する手助けをすることができます。ありがとう。

+0

代わりにbookshelf.jsを使用することにしました。これを簡単にやり遂げることができました。後継に比べて満足しています。 –

答えて

1

私はsequelizeではなくbookshelfjsを使うことにしました。オームで私が探していたものの線に沿ってはるかに多く見えます。

関連する問題