难以理解简单的子查询

时间:2016-10-26 14:14:21

标签: mysql

下午,

我被要求使用子查询返回一些特定的记录集,但是我发现自己很难理解如何使用子查询来获得特定的结果。

E.x。使用子查询,从orderdetails表中列出productsNumber 10121的products表中的productName(s)。

我试过了:

SELECT productName 
FROM products 
WHERE (SELECT orderNumber FROM orderdetails WHERE orderNumber = 10121); 

但显然我错过了一些东西。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

你非常接近。它总是帮助我查看子查询返回您将检查的对象数组。因此,对于此示例,您可能在这两个表中都有productNumber以使它们成为关系。因此,您的SQL将类似于:

SELECT productName FROM products WHERE productNumber IN (SELECT productNumber FROM orderdetails WHERE orderNumber = 10121);

此子查询将获取此订单的所有productNumbers,然后您的查询将获取所有这些产品的产品名称!