【问题标题】:Unable to fetch all data from 2 tables using leftjoin无法使用 leftjoin 从 2 个表中获取所有数据
【发布时间】:2019-10-14 19:14:06
【问题描述】:

我无法从查询中获取所有列,我得到的结果只有 1 个表,我还期待其他表,这里我有 2 个表 a)registration_types 和 b)packages。我得到了registration_types的结果,但没有得到packages表

   return await createQueryBuilder("registration_types")
            .leftJoinAndSelect("packages", "pk", "pk.registration_type_id = registration_types.id")
            .getMany();

我得到了结果,但不是所有的列

【问题讨论】:

    标签: mysql nestjs typeorm


    【解决方案1】:

    您应该尝试以下查询:

    return await createQueryBuilder("registration_types")
        .leftJoinAndSelect("registration_types.packages", Package, "pk", "pk.registration_type_id = registration_types.id")
        .getMany();
    

    或

    return await createQueryBuilder("registration_types")
        .leftJoinAndMapMany("registration_types.packages", Package, "pk", "pk.registration_type_id = registration_types.id")
        .getMany();
    

    【讨论】:

    • 对于第一个解决方案我得到了错误,对于 2 个解决方案我得到了结果,但是,在这里我只得到了registration_types 结果,而不是包结果。我已经以其他方式完成了原始查询,
    • return await getConnection().query( SELECT regType.start_date, regType.end_date, regType.type_name as package, pkg.package_name as packageName, pkg.price, pkg.total_seats FROM packages as pkg left join registration_types as regType on regType.id = pkg.registration_type_id );
    • 以上是我得到的结果,但我不想那样写,是另一种解决方案
    • 你能告诉我通过记录orm构建的查询是什么
    • 通过从'typeorm'编写QueryRunner;
    【解决方案2】:

    您应该尝试以下查询:

    return await getManager().createQueryBuilder(registrationTypesEntity, "registration_types")
        .leftJoinAndSelect("registration_types.packages", PackageEntity, "pk", "pk.registration_type_id = registration_types.id")
        .getMany();
    

    或者:

    return await getManager().createQueryBuilder(registrationTypesEntity, "registration_types")
        .leftJoinAndSelect("registration_types.packages")
        .getMany();
    

    【讨论】:

      猜你喜欢
      • 2014-08-11
      • 1970-01-01
      • 2018-06-13
      • 1970-01-01
      • 1970-01-01
      • 2020-10-23
      • 2021-02-15
      • 2017-04-30
      • 2021-02-21
      相关资源
      最近更新 更多