我正在为宾果卡计划创建一个数据库。我有2张桌子。一个是'card_cd':
card_cd: NAME | TYPE id_cd | int col1_id_cd | int col2_id_cd | int col3_id_cd | int col4_id_cd | int col5_id_cd | int
另一个是'card_column_cl':
card_column_cl NAME | TYPE id_cl | int order_cl | int n1_cl | int n2_cl | int n3_cl | int n4_cl | int
宾果卡由5列组成,每列4个(共20个数字),宇宙为40.只有1-8号应该在第一列,9-16到第二列,依此类推。我做的是我生成所有可能的列组合;因此,如果8个数字取4,则每列有70种可能的组合。我们有5列,因此有350个不同的列。这些列保存在'card_column_cl'表中。在'card_cd'中,我只保存了每列的列ID(id_cl)(以避免冗余和太多数据)。我现在的问题是如何查询包含列中所有数字的SELECT语句,如下所示:
NAME | VALUE id_cd | 123456 col1.n1_cl | 1 col1.n2_cl | 2 col1.n3_cl | 3 col1.n4_cl | 4 col2.n1_cl | 9 col2.n2_cl | 10 col2.n3_cl | 11 col2.n4_cl | 12 col3.n1_cl | 17 col3.n2_cl | 18 col3.n3_cl | 19 col3.n4_cl | 20 col4.n1_cl | 25 col4.n2_cl | 26 col4.n3_cl | 27 col4.n4_cl | 28 col5.n1_cl | 33 col5.n2_cl | 34 col5.n3_cl | 35 col5.n4_cl | 36
我不知道如何编写查询字符串。请帮我。非常感谢:D
答案 0 :(得分:1)
获得该结果的唯一方法是使用以下方法:
SELECT *
FROM card_cd
INNER JOIN card_column_cl AS col1 ON (col1.id_cl = card_cd.col1_id_cd)
INNER JOIN card_column_cl AS col2 ON (col2.id_cl = card_cd.col2_id_cd)
INNER JOIN card_column_cl AS col3 ON (col3.id_cl = card_cd.col3_id_cd)
INNER JOIN card_column_cl AS col4 ON (col4.id_cl = card_cd.col4_id_cd)
INNER JOIN card_column_cl AS col5 ON (col5.id_cl = card_cd.col5_id_cd)