[英]Joining two SQL tables with different column names in Metabase
我正在使用Metabase在数据库上提问。 我试图加入两个表,其中相同的信息(用户ID)具有两个不同的名称。 我编写的代码如下:
SELECT
game_states.game_module AS game, count(*)
FROM
game_states gs LEFT JOIN users u ON gs.user_id = u.id;
WHERE
games_states.state = 'after_hands'
AND
user.last_joined_stamp > now() - interval '30 days'
GROUP BY
1
ORDER BY
2 DESC
我一直收到以下错误: 错误:对表“ game_states”的FROM子句条目的引用无效提示:也许您打算引用表别名“ gs”。 位置:127
定义表别名后,请使用它!
SELECT gs.game_module AS game, count(*)
-------^
FROM game_states gs LEFT JOIN
users u
ON gs.user_id = u.id;
WHERE gs.state = 'after_hands' AND
------^
u.last_joined_stamp > now() - interval '30 days'
------^
GROUP BY 1
ORDER BY 2 DESC;
顺便说一句,您可能打算:
SELECT gs.game_module AS game, count(u.id)
FROM game_states gs LEFT JOIN
users u
ON gs.user_id = u.id AND
u.last_joined_stamp > now() - interval '30 days'
WHERE gs.state = 'after_hands'
GROUP BY 1
ORDER BY 2 DESC;
您正在使用LEFT JOIN
,因此大概想包括所有匹配的游戏-即使没有匹配用户的游戏。 如果是这样,请不要在where
子句中对u
进行过滤并计算匹配项,因此您可以获得0
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.