【问题标题】:How to insert data into 2 tables with relationship如何将数据插入到有关系的 2 个表中
【发布时间】:2015-03-21 19:40:40
【问题描述】:

假设我们有

ID int32, FirstNam text, LastName text (Table 1)

ID int32 , book text (Table 2)

我在 Table1 ID Parent 和 Table2 ID 之间有关系是孩子 如何根据table 1 中的一个数据编写查询以在table 2 中插入多个数据。

【问题讨论】:

  • 那么它是哪个数据库? MySQL、SQL Server 还是 Access?
  • 是否要将表 1 中的所有 ID 插入到表 2 中?
  • 我希望可以访问我的数据库,就像我有学生想借一本书一样,他可以根据 ID 选择多本书
  • 我添加了解决您遇到的问题的方法,但正如 dotnetom 所问,您使用的是哪个数据库? MySQL、Postgresql、Sqlite、访问、SQL Server、Oracle?

标签: mysql sql sql-server visual-studio-2013 ms-access-2013


【解决方案1】:

您需要添加第三个表来执行多对多关系。

IDUser int, FirstName text, LastName text (Table 1)
IDBook int, Book text (Table 2)
IDBook int, IDUser int (Table 3)

当用户借书时,您需要在表 3 中添加一条记录。

例如。 你有:

Table 1:
User 1 (IDUser: 1), User 2 (IDUser: 2), User 3 (IDUser: 3)

Table 2: 
Book 1 (IDBook: 1), Book 2 (IDBook: 2), Book 3 (IDBook: 3), Book 4 (IDBook: 4)

假设用户 2 借了书 1 和 3。您将拥有:

Table 3:
IDUser 2, IDBook 1
IDUser 2, IDBook 3

要将数据插入表 3,您可以这样做

用户 2 - 书 1

INSERT INTO Table3(IDUser, IDBook)
VALUES(2, 1)

用户 2 - 书 3

INSERT INTO Table3(IDUser, IDBook)
VALUES(2, 3)

要查询用户 2 借阅的所有书籍,查询将是:

SELECT
  *
FROM
  Table1
  JOIN Table3 ON Table1.IDUser = Table3.IDUser
  JOIN Table2 ON Table2.IDBook = Table3.IDBook
WHERE
  Table1.IDUser = 2

希望对你有帮助

【讨论】:

  • 您好,这里是我只想从表 1 中查询的数据库,我不知道如何帮助我,我不知道为什么我需要表 3 onedrive.live.com/…
  • 我想查询特定用户他们与 jhon smith 相关的书有 3 本书如何让他们单独使用这 3 本书
  • 您从未提到您在表 2 中与用户有一个字段。您需要做的是为借给用户的每本书以及归还书时更新表 2 中的关系字段,您必须将其设置回 NULL
  • 但我不知道如何查询它我只想显示数据我不想将任何内容设置为 null 我正在尝试查找任何参考如何查询所有借来的书籍通过用户 1 或用户 2 plz 你能帮助我或给我参考
  • SELECT * FROM Table1 JOIN Table2 ON Table1.ID = Table2.Relation WHERE Table1.ID = [IdUser]。 [IdUser] 是您要查询的用户的ID。如果您只想查看图书信息,只需使用查询SELECT Table2.* FROM Table1 JOIN Table2 ON Table1.ID = Table2.Relation WHERE Table1.ID = [IdUser]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-20
  • 2016-05-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多