【问题标题】:Creating a column of row data when building a table mysqlmysql建表时创建一列行数据
【发布时间】:2014-09-15 11:15:51
【问题描述】:

我想要做的是两部分。

示例表:

CREATE TABLE DEMO(
p_id int AUTO_INCREMENT NOT NULL, 
FirstName varchar(50) NOT NULL,
LastName varchar(50) NOT NULL,
Coworker Data Link????????
PRIMARY KEY(p_id)
);

我的目标是在用户之间存在关系时添加第四列来链接来自其他用户的数据(关系不会自动生成)。

因此,如果 Bob Smith 与 Joe Doe 合作,第三列(Coworker)会将第一个用户链接到第二个用户的信息。

我想跨表做类似的事情。所以,第二个表应该是这样的:

CREATE TABLE CONTACT(
a_id int AUTO_INCREMENT NOT NULL,
p_id int NOT NULL, 
Address varchar(100),
City varchar(50),
State varchar(50),
USER DATA LINK????????
PRIMARY KEY(p_id)
);

在第二种情况下,我想在表格中将用户姓名信息与他们的联系信息联系起来。

如果查询位于单独的表中,我知道如何使用查询来恢复这些信息,但我被要求使用表中的链接创建单个表。不幸的是,我的互联网搜索只能帮助我找到有关查询的信息。

【问题讨论】:

    标签: mysql hyperlink foreign-keys row create-table


    【解决方案1】:

    您可以创建自引用表,因为 MySQL 支持表中一列和另一列之间的外键引用;即,通过使Coworker 引用相同DEMO 表的p_id,如下所示

    CREATE TABLE DEMO(
    p_id int AUTO_INCREMENT NOT NULL, 
    FirstName varchar(50) NOT NULL,
    LastName varchar(50) NOT NULL,
    Coworker int, 
    PRIMARY KEY(p_id),
    foreign key(Coworker) references DEMO(p_id)
    );
    

    然后在获取数据时,您可以执行self join 并获取相关数据。也许您可以在相关列上发布的代码示例中对第二个实例执行相同的操作。

    【讨论】:

    • 谢谢!我是否正确假设跨表使用基本相同的格式(当然是引用不同的表)?
    • 可以,但如果需要,您也可以引用同一张表(格式相同)。
    • 谢谢!我真的应该能够自己解决这个问题,但这是漫长而漫长的一天。
    猜你喜欢
    • 2014-12-31
    • 2021-01-05
    • 1970-01-01
    • 1970-01-01
    • 2017-12-10
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多