A hash join algoritmus egyfajta összekapcsolási algoritmus .
Az algoritmus bemenetként két táblát és egy összekapcsolási feltételt kap. Munkája eredménye egy táblázat a kapcsolat eredményeivel.
A két bemeneti tábla közül a kisebbik egy speciális memórián belüli adatszerkezetben van elhelyezve : egy hash táblában , amely nagyon nagy keresési sebességet biztosít. Ezután a nagyobb tábla minden sorában megkeresi azokat az értékeket, amelyek megfelelnek az összekapcsolási feltételnek. Az eredmények a kimeneti táblázatba kerülnek.
A pszeudokódban az algoritmus a következőképpen írható le:
[HashTable] = BuildHashTable([SmallerTable], [Kisebb táblázat oszlopnevek, amelyekhez csatlakozni kell]); A [LargeTable] minden egyes sorához [r] Kimenet ([r], LookInHashTable([HashTable],[LargeTable oszlopnevek, amelyeken az összekapcsolás történik]));A valódi rendszerek a fenti példánál kifinomultabb kivonatolási sémákat használnak, főként a hash tábla felépítéséhez szükséges memóriaigény csökkentését célozva. Például mindkét tábla adatai részekre oszlanak, és csak az egyik részhez készül egy hash tábla.