Re:Things I wished more developers knew about databases
by karmakaze on Wednesday April 22, 2020 @09:21PM
(#22951905)
I don't see how JOIN is like flatMap. It's a subset of a cross-product. It's more like do-notation:
x <- ..
y <- ..
return (x, y)
Re:Things I wished more developers knew about databases
by taffer on Thursday April 23, 2020 @04:15AM
(#22953825)
> I don't see how JOIN is like flatMap
This is explained in the blog post I linked, including an example.
Re:Things I wished more developers knew about databases
by karmakaze on Thursday April 23, 2020 @03:38PM
(#22960229)
It's really flatMap/map from the link:
List<Integer> s1 = Stream.of(1, 2);
Supplier<Stream<String>> s2 = ()->Stream.of("A", "B");
s1.flatMap(v1 -> s2.get()
.map(v2 -> tuple(v1, v2)))
.forEach(System.out::println);
That's just a nested loop.
SELECT -> map
FROM -> stream
JOIN -> flatMap
WHERE -> filter
GROUP BY -> collect
ORDER BY -> sorted
https://blog.jooq.org/2015/08/13/common-sql-clauses-and-thei...