Problem trying to remove sub-query and use WHERE only to return certain rows I am extremely new to SQL queries. I am studying for Microsoft 70-461 and came to an example that I thought could be simplified, but my version is returning the wrong results, and I wanted to understand why.

This study guide show this query:

USE TSQL2012;
SELECT productid, productname, unitprice, P.supplierid
FROM Production.Products AS P
WHERE supplierid IN
    (SELECT supplier
     FROM Production.Suppliers
     WHERE country = N'Japan');


Which correctly returns 6 rows,
My query:

USE TSQL2012;
SELECT productid, productname, unitprice, P.supplierid
FROM Production.Products AS P, Production.Suppliers AS S
WHERE S.country = N'Japan':


Returns 231 rows, the production.products table only contains like 70 rows to begin with so I don't get it. Can somebody please tell me what I am overlooking. Thank you in advance.

The sample database, "TSQL2012", can be downloaded here.
Without a predicate to describe matches between the two tables, you're simply listing all product / Japanese supplier combinations, regardless of whether or not the supplier is the right one for each product.

USE TSQL2012
GO

SELECT  
    p.productid ,
    p.productname ,
    p.unitprice ,
    p.supplierid
FROM    Production.Products p
JOIN  Production.Suppliers s ON p.supplierid = s.supplierid
WHERE   s.country = N'Japan';