如何将sql表中定义的规则应用于其他表

9o685dep  于 2021-06-26  发布在  Impala
关注(0)|答案(1)|浏览(399)

好的,我有一个表,它有一组用户定义的规则,可以像这样对项目进行分类

class_id    team_category   league_category    mascot_category
1          NULL            AA                 BIRD
2          WINNER          AAA                NULL

然后我有一个这样的团队名单:

team_id    team_category   league_category    mascot_category
9          LOSER           AA                 BIRD
10         WINNER          AAA                CAT
11         NULL            A                  BIRD

我需要的是某种类型的sql命令,它将连接这两个命令来告诉我哪些团队在哪个类中。
我不知道如何正确地连接这些表,所以我得到了

team_id   class_id 
 9         1 
 10        2

我很感激你的帮助。
另外请注意,我实际上使用的是有限的sql命令集(cloudera impala),所以越简单越好。

xdnvmnnf

xdnvmnnf1#

您可以根据多个条件加入,因此类似的操作将适用于您:

SELECT teams.team_id, rules.class_id
FROM teams
INNER JOIN rules
  ON (teams.team_category = rules.team_category OR rules.team_category IS NULL)
    AND (teams.league_category = rules.league_category OR rules.league_category IS NULL)
    AND (teams.mascot_category = rules.mascot_category OR rules.mascot_category IS NULL)

它提供了您想要的输出。我在这儿摆弄。

相关问题