Yes. SingleStore supports advanced join capabilities and will automatically redistribute data as necessary to complete a query. SingleStore can also take advantage of collocated data across shard keys and reference tables to reduce data movement. See Distributed Joins.
Can I optimize a distributed join involving a small, static table?
Yes, a small table which does not change frequently can be made into a reference table, which is replicated to all the leaf nodes. This ensures that the table does not need to be moved when joined against, at the cost of using more memory. See Distributed SQL.