Joining tables that share no key
Two systems hold the same customers. One has an email, a phone number, and a company. The other has a name, a differently formatted phone number, and a card type. There is no shared ID. Can they be joined?
The idea
Instead of requiring a key, read the values. A phone number written two ways is still a phone number. A name and an email can agree on the same person. A model that understands what a column is can align columns first, then match rows.
Four parts of the answer
- Column alignment. Pairs of columns that carry the same attribute, each with a confidence and an example from the cells.
- Entity matches. Pairs of rows judged to be the same record, with the attributes they agreed on.
- A unified schema. Which columns are shared and which exist in only one source.
- Unified rows. Joined records built from the original values, with the source of each column and each source's raw variant kept.
A proposal, not a merge
The map is reported only above a confidence threshold, and it is never applied automatically. When the sources disagree on something beyond formatting, the output flags a possible mis-alignment instead of silently choosing a side. A human or a downstream system decides what to accept.
Why provenance matters
Keeping the raw value from each source means you can always trace a joined cell back to where it came from. If a match turns out wrong, you can see why it was made.