mysql - 难以理解简单的子查询

标签 mysql

下午,

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

例如使用子查询,列出 orderdetails 表中 orderNumber 10121 的产品表中的产品名称。

我尝试过:

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

但显然我错过了什么。

如有任何帮助,我们将不胜感激。

最佳答案

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

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

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

关于mysql - 难以理解简单的子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40264669/

相关文章:

php - 比较哈希字符串

mysql - 插入自定义表时是否仍应转义数据?

php - 遗漏了什么?

mysql - 从 ibdata1 恢复 mysql 数据库

mysql - MySQL 备份的最佳实践

php - mySQL UPDATE 查询本地文件路径

mysql - SQL:一对多,其中多个关系之一有两个特定值

php - 使用 Ajax 在同一页面中通过 php 发布查询结果

mysql - 使用 MIN/MAX 的查询作为子查询比单独查询慢得多

PHP将生成的数字保存到mysql数据库