Vladimir  Golub
Vladimir Golub

Reputation: 613

How to select data from left join table?

I have tow entities: Users and Settings tables.

@Entity()
export class Users {
    @PrimaryGeneratedColumn()
    id: number;

    @Column()
    name: string;
    
    @Column()
    settingID: number;
}
@Entity()
export class Settings {
    @PrimaryGeneratedColumn()
    id: number;

    @Column()
    name: string;
}

How to select data from Settings table ?

        return this.usersRepository
            .createQueryBuilder("users")
            .select(['users.id', 'users.name', 'settings.name'])
            .leftJoinAndSelect(Settings, 'settings', 'users.settingID = settings.id')
            .getMany();

Now I don't get data from Settings table, only users table.

Upvotes: 0

Views: 1558

Answers (1)

Art Olshansky
Art Olshansky

Reputation: 3356

return this.usersRepository
    .createQueryBuilder("users")
    .select(['users.id', 'users.name'])
    .leftJoinAndSelect('users.settings', 'settings', 'users.settingID = settings.id')
    .addSelect(['settings.name', 'settings.prop1', 'settings.prop2'])
    .getMany();

or

return this.usersRepository
    .createQueryBuilder("users")
    .leftJoinAndSelect('users.settings', 'settings', 'users.settingID = settings.id')
    .select(['users.id', 'users.name', 'settings.name', 'settings.prop1', 'settings.prop2'])
    .getMany();

Upvotes: 3

Related Questions