简体   繁体   中英

Outer query value is not able use in inner query

SELECT 
    (select Email from Contact where AccountId = Account.Id),
    Id,
    BillingCity,
     BillingCountry,
     BillingPostalCode,
     BillingState,
     BillingStreet,
     Name,
     Phone 
FROM Account
 where 
 LastModifiedDate < #[flowVars['timestamp']]

Problem here is I am not able to get the Email which is present in the sub query based on the Id of current iteration. Can you please help on this

I'm not sure how you are running the query, and how you are accessing the result, but if you are doing it in a place that does not give you the result dynamically, meaning that you try to access the columns by expected name, ie trying to get the "email" column somehow, then you need to fix a small issue in the query.

You need to add the AS operator to give your subquery a meaningful name like email like so:

... 
(select Email from Contact where AccountId = Account.Id) as email, 
...

See fiddle here for working example: db-fiddle

You can get rid of the scalar sub-query and just put a join to the CONTACT table instead. The following assumes that the CONTACT table is an optional relationship.

SELECT 
    con.email,
    acct.Id,
    acct.BillingCity,
    acct.BillingCountry,
    acct.BillingPostalCode,
    acct.BillingState,
    acct.BillingStreet,
    acct.Name,
    acct.Phone 
FROM account acct
     LEFT OUTER JOIN 
     contact con ON con.account_id = acct.account_id
WHERE acct.LastModifiedDate < #[flowVars['timestamp']]

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM