How to query join table with db.query syntax?

Here is my schema for User, Library and LibraryUser tables..

import { relations } from "drizzle-orm";
import { uniqueIndex, uuid, varchar } from "drizzle-orm/pg-core";
import { LibraryAlbum } from "./library-album";
import { LibraryArtist } from "./library-artist";
import { LibraryPath } from "./library-path";
import { LibraryTrack } from "./library-track";
import { LibraryUser } from "./library-user";
import { schema } from "./schema";

export const Library = schema.table("library", {
    id: uuid("id").primaryKey().notNull().unique().defaultRandom(),
    name: varchar("name", { length: 255 }).notNull(),
}, (table) => {
    return {
        library_index: uniqueIndex("library_index").on(table.name),
    };
});

export const LibraryRelation = relations(Library, ({ many }) => ({
    users: many(LibraryUser),
    paths: many(LibraryPath),
    tracks: many(LibraryTrack),
    albums: many(LibraryAlbum),
    artists: many(LibraryArtist),
}));

import { relations } from "drizzle-orm";
import { primaryKey, uuid } from "drizzle-orm/pg-core";
import { Library } from "./library";
import { schema } from "./schema";
import { User } from "./users";

export const LibraryUser = schema.table("library_user", {
    library_id: uuid("library_id").references(() => Library.id, { onDelete: "cascade" }).notNull(),
    user_id: uuid("user_id").references(() => User.id, { onDelete: "cascade" }).notNull(),
}, (table) => ({
    pk: primaryKey({ columns: [table.user_id, table.library_id] }),
}));

export const LibraryUserRelation = relations(LibraryUser, ({ one }) => ({
    library: one(Library, {
        fields: [LibraryUser.library_id],
        references: [Library.id],
    }),
    user: one(User, {
        fields: [LibraryUser.user_id],
        references: [User.id],
    }),
}));
Was this page helpful?