I don't really understand the main difference between these two functions? What are the key differences between these two options and why are they different? Like what makes these two so different from each other? Will I get a completely different answer if I choose one or the other?
Suppose you make a table to table join. Of 25 records in the external database only 10 match the data of the vector layer. If you choose to keep only the records that match, you will be left with only 10 features in the vector layer (once you save it with another name). If you choose to keep all the records, you will keep the 25 features of your original layer. Remember that a table join is temporary, if you want to make it permanent you have to save the layer with another name