Typeorm createQueryBuilder.innnerJoinSelect() 不返回 table 的列
Typeorm createQueryBuilder.innnerJoinSelect() not returning the columns of a table
我正在尝试 select 两个表的列,postcode_distance 使用 innerJoinAndSelect 但不幸的是,我没有获取这些列。
这是我正在尝试使用 typeorm createQueryBuilder()
this.createQueryBuilder('tradie')
.innerJoin(
'tradie.categories',
'category',
'category.category_id = :categoryId',
{
categoryId,
},
)
.innerJoinAndSelect(
'postcode_distance',
'postcodeDistance',
'postcodeDistance.source = ANY(tradie.directoryPostcodes)',
)
.where('tradie.plan IN (:...planIds)', { planIds })
.andWhere('postcodeDistance.destination = :postcode', { postcode })
.andWhere('postcodeDistance.driving_distance <= :radius', { radius })
.andWhere('tradie.enable_spiral_search = TRUE')
.andWhere('tradie.is_active = TRUE')
.select('tradie')
这是我期望生成的 SQL。
Select t.*,pd.*
FROM tradie t
INNER JOIN tradie_category tc
ON t.tradie_id=tc.tradie_id
INNER JOIN Category c ON
c.category_id=tc.category_id
AND c.category_id=
INNER JOIN postcode_distance pd ON
pd.source=ANY(t.directory_postcodes)
WHERE t.plan_id IN(,)
AND pd.destination= AND
pd.driving_distance<= AND
t.enable_spiral_search=TRUE AND
t.is_active=TRUE
似乎 select() 将重置其上方的 selected 列。删除 select() 修复了它
我正在尝试 select 两个表的列,postcode_distance 使用 innerJoinAndSelect 但不幸的是,我没有获取这些列。
这是我正在尝试使用 typeorm createQueryBuilder()
this.createQueryBuilder('tradie')
.innerJoin(
'tradie.categories',
'category',
'category.category_id = :categoryId',
{
categoryId,
},
)
.innerJoinAndSelect(
'postcode_distance',
'postcodeDistance',
'postcodeDistance.source = ANY(tradie.directoryPostcodes)',
)
.where('tradie.plan IN (:...planIds)', { planIds })
.andWhere('postcodeDistance.destination = :postcode', { postcode })
.andWhere('postcodeDistance.driving_distance <= :radius', { radius })
.andWhere('tradie.enable_spiral_search = TRUE')
.andWhere('tradie.is_active = TRUE')
.select('tradie')
这是我期望生成的 SQL。
Select t.*,pd.*
FROM tradie t
INNER JOIN tradie_category tc
ON t.tradie_id=tc.tradie_id
INNER JOIN Category c ON
c.category_id=tc.category_id
AND c.category_id=
INNER JOIN postcode_distance pd ON
pd.source=ANY(t.directory_postcodes)
WHERE t.plan_id IN(,)
AND pd.destination= AND
pd.driving_distance<= AND
t.enable_spiral_search=TRUE AND
t.is_active=TRUE
似乎 select() 将重置其上方的 selected 列。删除 select() 修复了它