我正在尝试选择得分高于50并在过去3个月内登录过的用户。然后,我想使用两个表中的ID将这些用户连接起来,因此我将上述查询返回的订单表行附加到每个用户。
这是我的查询:
SELECT Users.EmailAddress, Users.RewardPoints, Orders.UserID, Users.ID From Users
WHERE RewardPoints > 50 AND Users.LastLoggedIn > DATE_SUB(NOW(), INTERVAL 3 MONTH)
Inner Join Orders ON Orders.UserID = Users.ID;
但这给了我这个错误:
错误:#1064-您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册以获取正确的语法,以在第4行的'Inner Join Orders on Orders.UserID = Users.ID LIMIT 0,25'附近使用
编辑想通了!
从用户内部联接中选择SELECT Users.EmailAddress,Users.RewardPoints,Orders.UserID,Users.ID,WHERE Users.RewardPoints> 50 AND Users.LastLoggedIn> DATE_SUB(NOW(),INTERVAL 3 MONTH );
您不能在where条件之后加入表,而应将它放在最后(以您的情况为准)。
SELECT Users.EmailAddress, Users.RewardPoints, Orders.UserID, Users.ID
FROM Users
INNER JOIN Orders On Orders.UserID = Users.ID
WHERE RewardPoints > 50 AND Users.LastLoggedIn > DATE_SUB(NOW(), INTERVAL 3 MONTH);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句