Power BI is turning 10, and we’re marking the occasion with a special community challenge. Use your creativity to tell a story, uncover trends, or highlight something unexpected.
Get startedJoin us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.
Hello,
I need help in using two different attributes from a table to select records from another table.
I have two starting tables.
The main one – table A - looks like:
ID | Other_columns | type | Zipcode | parent_Id |
dis1 |
| dist | 10D1 |
|
Id2 |
|
| 1000A2 | dis2 |
dis2 |
| dist | 10D2 |
|
Id4 |
|
| 1000A4 | dis1 |
Id5 |
|
| 1000A5 |
|
Id6 |
|
| 1000A6 |
|
dis3 |
| dist | 10D3 |
|
And the other table B (no "dis" as ID):
ID | Other_columns | parent_Id | Zipcode |
Id1 |
|
| 1000A1 |
Id2 |
| dis2 | 1000A2 |
Id3 |
|
| 1000A3 |
Id4 |
| dis1 | 1000A4 |
I would like to select all rows from my main table that have their IDs in Table B and also the ones that have their ID in Table B’s parend.id field
The final table should look like:
ID | Other_columns | type | Zipcode | parent_Id |
dis1 |
| dist | 10D1 |
|
dis2 |
| dist | 10D2 |
|
Id1 |
|
| 1000A1 |
|
Id2 |
|
| 1000A2 | dis2 |
Id3 |
|
| 1000A3 |
|
Id4 |
|
| 1000A4 | dis1 |
To solve this, I tried the following. I created a list from table B, parent.id. Then, I created another list from Table B, ID field. I concatenated both lists and converted the result into a table.
I used the new table – which has only primary keys - to select records in my main table A.
This method seems very long. Can somebody pls suggest a more concise approach? I need the solution in M.
Thank you
Solved! Go to Solution.
Hello @Merleau ,
Another approach of achieving this can be as below:
1) Merge the two tables "as New" as Inner Join on the basis of ID
= Table.NestedJoin(TableA, {"ID"}, TableB, {"ID"}, "TableB", JoinKind.Inner)
2) Again merge the two tables "as New" on the basis of ID in Table A and parent_id in Table B:
= Table.NestedJoin(TableA, {"ID"}, TableB, {"parent_Id"}, "TableB", JoinKind.Inner)
3) Then Append the two outcome tables to get the desired result:
= Table.Combine({Merge1, Merge2})
The end result would look something like this:
This is somewhat differnet from the end result shown by you.
Please recheck your requirement and the result given by you as there seems to be a mismatch.
If you are looking to get the result from Table A that are presnet in Table B, the records wit ID1 and ID3 should not be part of the reuslt.
Please confirm.
I hope this might solve your purpose.
Thankyou
Great solution @PC2790
And you are correct about my output. What I posted was wrong.
Your approach is much cleaner and faster.
Thank you.
Hello @Merleau ,
Another approach of achieving this can be as below:
1) Merge the two tables "as New" as Inner Join on the basis of ID
= Table.NestedJoin(TableA, {"ID"}, TableB, {"ID"}, "TableB", JoinKind.Inner)
2) Again merge the two tables "as New" on the basis of ID in Table A and parent_id in Table B:
= Table.NestedJoin(TableA, {"ID"}, TableB, {"parent_Id"}, "TableB", JoinKind.Inner)
3) Then Append the two outcome tables to get the desired result:
= Table.Combine({Merge1, Merge2})
The end result would look something like this:
This is somewhat differnet from the end result shown by you.
Please recheck your requirement and the result given by you as there seems to be a mismatch.
If you are looking to get the result from Table A that are presnet in Table B, the records wit ID1 and ID3 should not be part of the reuslt.
Please confirm.
I hope this might solve your purpose.
Thankyou
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
Check out the June 2025 Power BI update to learn about new features.
User | Count |
---|---|
15 | |
11 | |
8 | |
8 | |
7 |
User | Count |
---|---|
15 | |
13 | |
9 | |
7 | |
6 |