when you write index=data sourcetype=st1 num=10 | join type=inner num [ search index=data sourcetype=st2 ] and obtain 2 results ,is because the results of index=data sourcetype=st1 num=10 who is 10 is join with results from search search index=data sourcetype=st2 on value field type=inner and field num. This returns 2 results because there is 2 correspondence between the two search on type=inner num fields. This is normal that you obtained 2 results.
Thus, in the second case, is the same thing, because the first search is return 10 results who will join with results of second search . This returns 10 results because there is 10 correspondence between the two search on type=inner num fields.
This means that Join do correspondence between results of two search in both case.
Yes, join order is important. Join type is also important. In an inner join, events from the main search are included only if they match an event from the subsearch. That is why you see the results you do. An outer join returns all events from both searches.
--- If this reply helps you, an upvote would be appreciated.