繁体   English   中英

在元数据库中联接具有不同列名的两个SQL表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM