Hi, I'm trying to create a QueryBuilder with joins, but I must be doing something wrong. How is it done?
Here's what I've been doing so far:
Query query;
QueryRun queryRun;
QueryBuildDataSource dataSource;
QueryBuildDataSource dataSource2;
QueryBuildDataSource dataSource3;
str textDesc = "";
query = new Query();
query.queryType(QueryType::Join);
query.addDataSource(tableNum(LogisticsAddressCountryRegionTranslation), "LogisticsAddressCountryRegionTranslation", UnionType::Union);
query.addDataSource(tableNum(Currency), "Currency", UnionType::Union);
query.addDataSource(tableNum(LogisticsAddressCountryRegion), "LogisticsAddressCountryRegion", UnionType::Union);
dataSource = query.dataSourceTable(tableNum(LogisticsAddressCountryRegionTranslation));
dataSource2 = query.dataSourceTable(tableNum(Currency));
dataSource3 = query.dataSourceTable(tableNum(LogisticsAddressCountryRegion));
SysQuery::findOrCreateRange(
dataSource, fieldNum(LogisticsAddressCountryRegionTranslation, LanguageId)
).value(
"EN-US"
);
if (textDesc != "")
{
SysQuery::findOrCreateRange(
dataSource, fieldNum(LogisticsAddressCountryRegionTranslation, ShortName)
).value(
SysQuery::valueLike(textDesc)
);
}
queryRun = new QueryRun(query);
But the query is not joined. I can see 3 distinct queries (for each datasource) at the QueryRun. Check it below:
NAME: queryRun VALUE: Query object 20a9d848: SELECT * FROM LogisticsAddressCountryRegionTranslation(LogisticsAddressCountryRegionTranslation) WHERE ((LanguageId = N'EN-US')); SELECT * FROM Currency(Currency); SELECT * FROM LogisticsAddressCountryRegion(LogisticsAddressCountryRegion) TYPE: QueryRun
How do I join using QueryBuilder?
Thanks
*This post is locked for comments
I have the same question (0)