The INNER JOIN keyword selects records that have matching values in both tables.
Basically, it looks like this.

The highlighted blue part from the image above is our query results when we apply INNER JOIN between 2 tables.
Syntax:
SELECT a.column2, b.column2
FROM table a
INNER JOIN table b
ON a.column = b.column;
I am using alias as well in the syntax. You can use name of the table instead of alias. Alias makes it better to write the query. Learn more about alias in this post:
Column And Table Alias In Postgres
INNER JOIN Query Example 2 tables
I am using the database for all examples. It is available on my Github public repo
SELECT c.contact_name, o.order_date
FROM customers c INNER JOIN orders o
ON c.customer_id = o.customer_id
//Output
contact_name. order_date
"Paul Henriot" "1996-07-04"
"Karin Josephs" "1996-07-05"
"Mario Pontes" "1996-07-08"
...
...
830 rows
INNER JOIN Query Example 3 tables
SELECT c.contact_name, o.order_date, COUNT(od.product_id)
FROM customers c INNER JOIN orders o ON c.customer_id = o.customer_id
INNER JOIN order_details od ON od.order_id = o.order_id
GROUP BY od.order_id, c.contact_name, o.order_date
//Output
contact_name. order_date. count
"Paolo Accorti" "1997-10-20" 2
"José Pedro Freyre" "1997-05-28" 4
"Paula Wilson" "1998-01-07" 1
...
...
830 rows
Of course, we can use ORDER BY and sort the query results the way we want.
database INNER JOIN sql query table