gpt4 book ai didi

SQL 和表之间的关系

转载 作者:行者123 更新时间:2023-11-29 14:06:53 25 4
gpt4 key购买 nike

好几次我都在回到对数据库关系理论的理解上,但仍然没有成功。我会再试一次。

假设我有两个表:动物:

CREATE TABLE animals (id INTEGER PRIMARY KEY, name TEXT);

和食物:

CREATE TABLE food (id INTEGER PRIMARY KEY, food TEXT);

我需要的是将这两个表连接起来。例如,我想从 animals 表中选择“ pig ”,并从 food 表中获取 pig 可以吃的所有东西。我只是不知道如何将它们联系起来。我相信我可以向 food 表添加一个外键,它将链接到 animal 表的主键,但有一个问题我无法弄清楚:

如果我从网络表单等输入数据库,输入动物名称和它吃的产品,会怎样?动物名称进入第一个表并自动接收一个 id。它只是自动递增。所以,为了使它成为第二个表的关系,我必须从第一个表中选择新的 ID!所以我们得到了三个 sql 请求:

1) INSERT INTO animals (name) VALUES ('pig);

2) SELECT id FROM animals WHERE name='pig';(我们将它存储在一个变量中,现在并不重要)

3) INSERT INTO food (product, animal_id) VALUES ('something', 'id of a pig');

我只是觉得不对。或者我的大脑无法理解如此复杂的抽象概念。

请指教。

最佳答案

您需要一个连接表,它与AnimalsFood 相关。这看起来像:

CREATE TABLE AnimalFoods (
id INTEGER PRIMARY KEY,
AnimalId int references Animal(id),
FoodId int references Food(id)
);

然后您可以使用这些表之间的各种连接来回答您的问题。

关于SQL 和表之间的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31514744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com