join

fun <K, V, otherV, outV> KTable<K, V>.join(    other: KTable<K, otherV>,     name: String? = null,     materialized: Materialized<K, outV, KeyValueStore<Bytes, ByteArray>>? = null,     joiner: ValueJoiner<V, otherV, outV>): KTable<K, outV>
fun <K, V, otherK, otherV, outV> KTable<K, V>.join(    other: KTable<otherK, otherV>,     name: String? = null,     materialized: Materialized<K, outV, KeyValueStore<Bytes, ByteArray>>? = null,     foreignKeyExtractor: ForeignKeyExtractor<V, otherK>,     joiner: ValueJoiner<V, otherV, outV>): KTable<K, outV>
fun <K, V, otherK, otherV, outV> KTable<K, V>.join(    other: KTable<otherK, otherV>,     tableJoined: TableJoined<K, otherK>? = null,     materialized: Materialized<K, outV, KeyValueStore<Bytes, ByteArray>>? = null,     foreignKeyExtractor: ForeignKeyExtractor<V, otherK>,     joiner: ValueJoiner<V, otherV, outV>): KTable<K, outV>

See also