With a relational database, you can use the SELECT statement to join data from multiple tables and return the results. Joins are fundamental to the relational model.
To ensure that joins execute efficiently, the database and its applications should be performance-tuned on an ongoing basis. Joins are most effective where the database tables are normalized and the relationships among the tables are clear. However, if you join too many tables in one SELECT statement application performance can be affected. You can work around such issues by using database replication, materialized views, or query rewrites.
A non-relational NoSQL database does not support table joins. Instead, applications read data from one table at a time.