A company has different types of products (trains, motorbikes, cars ect.) From this [sample database](http://www.mysqltutorial.org/mysql-sample-database.aspx):

```
ORDERDETAILS table contains Ordernumber and Productcode
PRODUCTS table contains Productcode and Productline

```

The query to list the order numbers that include **either** ships or trains is:

```
Select DISTINCT ordernumber from orderdetails
WHERE productcode IN (
 Select productcode  
  From products 
  where Productline =’ships’or productline =’train’
 ); 

```

How to list the Ordernumber that have **both** Productline 'Ship' and 'trains'?

This gives me an empty set:

```
Select DISTINCT ordernumber FROM orderdetails
 WHERE productcode IN (
  Select productcode  
   From products 
   where Productline =’ships’ AND productline =’train’
  );

```

Why can't I just change the "or" to "and"? What would be the correct syntax for the empty set?