mysql - 如何使用嵌套连接编写 select 语句

标签 mysql sql

我一直在学习如何使用嵌套联接,但我似乎无法让它们适用于我当前的数据库。

我创建了这些表: enter image description here

我想首先了解有多少用户至少使用过一次(他们的帐户中有一些分钟)、在 2016 年创建了帐户并在 2013 年使用过 iPhone。 我已经尝试过哪个会产生错误:

SELECT COUNT(user_id) FROM USER
WHERE usage_count > 0
AND account_created <= ‘2016-12-31’
AND account_created >= ‘2016-01-01’
INNER JOIN PRODUCT
WHERE product = 'iPhone';

最佳答案

您的查询错误是预期的,因为您有两个 WHERE 子句,并且 USER 是关键字,不应用作标识符。我已经使用 backtique 转义了它们,最好使用非键/保留字作为列名。您的查询应该类似于

SELECT COUNT(u.user_id) FROM `USER` u
INNER JOIN USAGE us on us.user_id = u.user_id
JOIN PRODUCT p ON us.product_id = p.product_id
WHERE p.product = 'iPhone'
AND u.usage_count > 0
AND u.account_created <= '2016-12-31'
AND u.account_created >= '2016-01-01'

关于mysql - 如何使用嵌套连接编写 select 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41294553/

相关文章:

php - mysql 无法与 php 一起使用

php - 使用MySQL和PHP统计一定范围内的数字的总结果

mysql - 获取数据(如果数据可用或不可用)

MYSQL如何排除另一个表中多次提到的玩家

sql - 如何在 Oracle 中插入带有嵌入式单引号的值

SQL从WebMatrix Razor语法中的一个POST将数据插入多个表

mysql - 如何在 elasticsearch 中编写此查询?

python - 通过 Bash 运行时出现 ModuleNotFound 错误

python - 根据数据框中的内容从 SQL Server 中删除行

sql - 没有交叉连接的未售出产品查询?