如何在同一个表mysql数据库中链接2行?

时间:2012-12-15 11:22:29

标签: php mysql database rows

我有一个用户表,我需要在其中链接两行。即我希望一个用户拥有另一个用户的链接。

可以在php中使用mysql吗?

如果没有,请建议我采取其他方式。

3 个答案:

答案 0 :(得分:1)

您可以进行自我加入:

SELECT a.*, b.*
FROM   my_table a JOIN my_table b ON a.foo = b.bar

要在两个记录之间永久存储“链接”,您可以创建一个关系表:

CREATE TABLE relationships (
  id_a BIGINT UNSIGNED NOT NULL,
  id_b BIGINT UNSIGNED NOT NULL,
  PRIMARY KEY (id_a, id_b),
  FOREIGN KEY (id_a) REFERENCES my_table (id),
  FOREIGN KEY (id_b) REFERENCES my_table (id)
);

答案 1 :(得分:0)

查找自我加入,快速Google应该为您提供所需的答案。

答案 2 :(得分:0)

如果关系是多对多的(即,每个用户可能有许多其他用户的链接),最好的方法是使用第二个表列出关系。

user_links (
    user_a_id int not null,
    user_b_id int not null,
    PRIMARY KEY(user_a_id, user_b_id)
)

您可能需要阅读Database Normalization