使用子查询来获取结果sql

时间:2015-10-13 21:29:02

标签: mysql sql subquery

我有一个如下所示的select语句:

SELECT DISTINCT category_name 
FROM categories c JOIN products p 
  ON c.category_id = p.category_id 
ORDER BY category_name; 

返回:

+---------------+
| category_name |
+---------------+
| Basses        |
| Drums         |
| Guitars       |
+---------------+

我试图使用子查询获得相同的结果,但我没有得到完全相同的结果。以下是我使用的代码:

SELECT DISTINCT category_name FROM 
categories WHERE category_name IN(SELECT distinct 
category_name FROM products) ORDER BY category_name;

当我运行此代码时,我得到:

+---------------+
| category_name |
+---------------+
| Basses        |
| Brass         |
| Drums         |
| Guitars       |
| Keyboards     |
+---------------+

我错误的是我没有得到相同的输出?

1 个答案:

答案 0 :(得分:0)

这是因为如果要使用外连接,那么你正在使用连接。 看看:inner join