async findOneWithTelCount(userId: number): Promise { const rawData = await this.userRepository .createQueryBuilder('user') .leftJoin('user.tel', 'tel') .select([ 'user.id AS id', 'user.userName AS userName', 'COUNT(DISTINCT tel.id) AS totalTel' ]) .where('user.id = :userId', { userId }) // 如果你有过滤条件,比如获取特定的 user .groupBy('user.id') .getRawOne(); if (!rawData) return null; return { id: rawData.id, userName: rawData.userName, totalTel: +rawData.totalTel }; }