Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
BedrockMission!

Learn more

View all

Sign in to view all badges

SOLVED

How to use Joins in queries in js files

kattyice
Level 2
Level 2

Hi there,

 

I am trying to query data from javascript like below:

 

var query = NLWS.xtkQueryDef.create(
  {queryDef: {schema: "nms:recipient", operation: "select", 
    select: {
        node: [{expr: "@id"},
               {expr: "@label"},
               {expr: "@internalName"}] 
    }, 
    where: {
      condition: [{expr: "@id='16'"}]
    }
  }})

 

So for the above query, if I have another table which is nms:userEmail. And I want to inner join this table with the current one(which is the one that shows above in the js code(nms:recipient)), and get the joined table. How can I do that here? What the query should be like?

 

Thank you!

 

 

1 Accepted Solution
jonasn92134656
Correct answer by
Level 4
Level 4

Hi,

 

Is the join defined in the schema already? In that case you should be able to reference attributes of the linked schema in the query, either in selected nodes or conditions:

 

var query = NLWS.xtkQueryDef.create(
  {queryDef: {schema: "nms:recipient", operation: "select", 
    select: {
        node: [{expr: "@id"},
               {expr: "@label"},
               {expr: "@internalName"},
{expr: "linkToOtherResource/@linkedAttribute"}] }, where: { condition: [{expr: "@id='16'"}] } }})

 

Regards

View solution in original post

5 Replies
jonasn92134656
Correct answer by
Level 4
Level 4

Hi,

 

Is the join defined in the schema already? In that case you should be able to reference attributes of the linked schema in the query, either in selected nodes or conditions:

 

var query = NLWS.xtkQueryDef.create(
  {queryDef: {schema: "nms:recipient", operation: "select", 
    select: {
        node: [{expr: "@id"},
               {expr: "@label"},
               {expr: "@internalName"},
{expr: "linkToOtherResource/@linkedAttribute"}] }, where: { condition: [{expr: "@id='16'"}] } }})

 

Regards

View solution in original post

kattyice
Level 2
Level 2
Hi, jonasn, thx so much for replying me!, I have added sth like "expr: "emailInfo/@email]", and the externalJoin is in my schema. But I got the error which says :"The node of path '/' is not stored as an independent SQL field, UNable to use it as a filtering criteria in a query". Do you know how this error comes?
ovot
Level 2
Level 2

@kattyice, make sure that your node expression is wrapped in square brackets: 

{expr: "[linkToOtherResource/@linkedAttribute]"}