关于MySQL的多个表

时间:2016-06-04 15:15:37

标签: mysql sql

我是MySQL的初学者,第一次在这里问一个问题,如果我错了,请纠正我。

我有4个表如下:

Table A 
A_id   | A_description

Table B
B_id   | B_description

Table C
C_id   | C_description

Table D
D_id   | D_description

现在我想创建一个与4个表相关的新表:

Table E
A_id  | B_id | C_id | D_id | D_description

数据表示应该是这样的:

A    B    C    D   D_Description
================================
A1-> B1-> C1-> D1 ->Description
            -> D2 ->Description
       -> C2-> D1 ->Description
            -> D2 ->Description
  -> B2-> C1-> D1 ->Description
            -> D2 ->Description
       -> C2-> D1 ->Description
            -> D2 ->Description

and so on for A2 ...

我开始制作这样的数据库:

Table A 
A_id   | A_description

Table B
B_id   | A_id | B_description

B_idA_id是唯一约束。 但我不知道如何以这种方式制作剩余表格的结构。

那么,数据库结构应该如何? (或者前4个表的结构应该如何?)谢谢:)

编辑: 结果表应该是这样的:

Table A
A_id | A_Description
  1    explanation
  2    another explanation

Table B
A_id | B_id | B_Description
  1     1    description
  2     1    my description
  2     2    your description

如果A_id不同(如唯一约束),则B_id列可以包含相同的数据

1 个答案:

答案 0 :(得分:0)

我想你只想要交叉加入:

Select a.id, b.id, c.id, d.id, d.description
From a cross join b cross join c cross join d;

注意:这将填充所有列值,但这就是SQL结果集通常的工作方式。格式化行通常在应用程序层完成。

您可以将结果保存在表中,该表用于关联它们。