© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
Drizzle TeamDT
Drizzle Team•15mo ago•
19 replies
CyberCipher

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 { 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],
    }),
}));
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],
    }),
}));
Drizzle TeamJoin
The official Discord for all Drizzle related projects, such as Drizzle ORM, Drizzle Kit, Drizzle Studio and more!
11,879Members
Resources
Was this page helpful?

Similar Threads

Recent Announcements

Similar Threads

Help with Join query
Drizzle TeamDTDrizzle Team / help
2y ago
extract table names from db.query
Drizzle TeamDTDrizzle Team / help
3y ago
rewrite with db.query
Drizzle TeamDTDrizzle Team / help
11mo ago
How to filter by joined tables with Drizzle query syntax?
Drizzle TeamDTDrizzle Team / help
14mo ago