0
我有一个select语句看起来像这样:子查询,得到的结果SQL
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 |
+---------------+
我在做什么错了,我不是得到相同的输出?
一个是比较类别名称和其他类别ID。不同的查询,所以它们产生不同的结果并不奇怪。为什么你会在两个表中的ID和名称是完全不同的问题。 –
@GordonLinoff好的,我现在看到了错误。我将category_name更改为category_id并获得了正确的结果。谢谢你指出,戈登:) – joanne72205