Si estoy definiendo unión interna o unión izquierda en la subconsulta de unión izquierda y selección, entonces me está dando el mensaje de error sqlMessage: "Nombre de columna duplicado 'id'".
Por ejemplo
.leftJoinAndSelect( (qb) => qb .from(Email, 'email') .innerJoin(User, 'user') .where('user.account = :account', { accountId: 4, }), 'email', '`email`.`id` = 1', )Lo anterior me dará el error "Nombre de columna duplicado 'id'"
Pero si elimino innerJoin, entonces funciona bien y da el resultado esperado.
.leftJoinAndSelect( (qb) => qb .from(Email, 'email'), 'email', '`email`.`id` = 1', )Alguna idea de por qué me está dando este error.
Creo que el problema es que tanto las tablas de email como las de user tienen columnas de id . ¿Puedes probar el siguiente código?:
.leftJoinAndSelect( (qb) => qb .select("user.id", "user_id") .addSelect("email.id", "email_id") // Add whatever you want by .addSelect method .from(Email, 'email') .innerJoin(User, 'user') .where('user.account = :account', { accountId: 4, }), 'email', '`email`.`id` = 1', )