我是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_id
和A_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列可以包含相同的数据
答案 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结果集通常的工作方式。格式化行通常在应用程序层完成。
您可以将结果保存在表中,该表用于关联它们。