Yet another AirTable filter and join table question

Hey,

I would like to pull data from AirTable which is:

  • Filtered based on the logged in user
  • Retrieves a value from a column in a different table by looking up based on ID
  • Displays information from multiple tables in a single List View (Doesn’t need to be a list viewer component)

Some wireframes to try and show what I’d like to do. Full requirement desc underneath.

In AirTable, I have 3 tables: Person, Place and PersonPlace. The first two are basic tables and the third acts as a joining table you would find in a normal relational database. It contains a timestamp, a PersonID and a PlaceID. Everytime a person is scanned by a place, their ID’s are added to this table with the timestamp. So I can have many of each ID in this same table as a person can attend a place many times.

The requirement is for the person to be able to see a list of all of the times (all entries) they have been scanned and where (like the screenshot). The challenge is that I want to filter the PersonPlace table on PersonID, pull out every occurance for this person, get the associated PlaceID for every row I’ve identified and lookup the PlaceName from the Place table, so that I can display the Place Name and Timestamp in the UI.

So far, I’ve tried researching these articles:

Here: [Solved] Using VLookup in Airtable to display a picture - #5 by jared
Here: Search & Filter LocalDB
Here: [Solved] Join two columns from airtable into a listviewer - #5 by Tina_Fountain

And although they all do parts of what I’m after, I can’t seem to stitch it all together, so here goes.

I can get a single column to filter as follows

But I can’t get the filter to work when I have multiple lists (tried filtering using “Contains” on the object when returning all rows)

My attempts so far are no way near good enough.

Can anyone help me to create the blocks to meet all these requirements in one place please?

Thanks in advance!!!

Edit: I’m having this fixed by a developer so will share results after

1 Like

i am struggle this topic also. actech tutorial is good but hard to understand.

@ozel1978,

These types of problems and the poor performance and low scaleability of the solutions moved me to JSON and firebase real-time db. Faster, scaleable, and more flexible.

1 Like

@chrisanderson1006tt9,
The solution is simple, get all rows from the joint table as a list then go through the list one by one comparing the PersonID in the row to the PersonID of the logged in user. If there is a match then read the PlaceID and compare it with the selected place and if there is a match at this time add this row to the list you want it to show the result.

This way you will have a list of matched PersonID and PlaceID

Another way is using the local data source to store matched rows and this local data source is bound to a data viewer list, this way you can display multiple fields.

Happy Thunking :grin: