根据 Joe Stefanelli 的回答,您不能细分列。
感觉好像您正在尝试将每一列视为它自己的结构或类。您最好将 TABLE 视为一个结构,而将每个 FIELD 视为一个基元。
最接近您要求的是创建 12 列,并适当地命名它们(C1_Pos、C1_Neg、C2_Pos、C2_Neg 等)或创建两个表。
一个表会有它的主键列,然后是两个值列; positive 和 negative。然后主表中的每个条目都将引用该表。
例如...
CREATE TABLE value_pair (
id INT,
positive INT,
negative INT,
PRIMARY KEY (id)
);
CREATE TABLE master (
id INT,
value_pair_id_1 INT,
value_pair_id_2 INT,
value_pair_id_3 INT,
value_pair_id_4 INT,
value_pair_id_5 INT,
value_pair_id_6 INT,
PRIMARY KEY (id),
FOREIGN KEY (value_pair_id_1) REFERENCES value_pair (id),
FOREIGN KEY (value_pair_id_2) REFERENCES value_pair (id),
FOREIGN KEY (value_pair_id_3) REFERENCES value_pair (id),
FOREIGN KEY (value_pair_id_4) REFERENCES value_pair (id),
FOREIGN KEY (value_pair_id_5) REFERENCES value_pair (id),
FOREIGN KEY (value_pair_id_6) REFERENCES value_pair (id)
);
然而,每当你想获取其中一个值时,你就不得不加入这两个表。如果你想要所有的值,你必须加入 6 次......
SELECT
*
FROM
master
INNER JOIN
value_pair AS [VP1]
ON master.value_pair_id_1 = [VP1].id
INNER JOIN
value_pair AS [VP2]
ON master.value_pair_id_2 = [VP1].id
INNER JOIN
value_pair AS [VP3]
ON master.value_pair_id_3 = [VP1].id
INNER JOIN
value_pair AS [VP4]
ON master.value_pair_id_4 = [VP1].id
INNER JOIN
value_pair AS [VP5]
ON master.value_pair_id_5 = [VP1].id
INNER JOIN
value_pair AS [VP6]
ON master.value_pair_id_6 = [VP1].id
就我个人而言,我只会使用 12 列...