将数据插入到具有多对多关系的表中

时间:2013-07-21 00:25:17

标签: mysql sql sql-server

我正在完成一项作业,需要您在SQL数据库中提供以下帮助: -

我有3张桌子

  1. 产品
  2. LintItem
  3. 发票
  4. LineItem是一个新娘表,我需要将数据插入LineItem,但它需要ProductID和InvoiceNumber。 在我的情况下,Invoice表是emppty,它将从LineItem表传递的数据中填充。

    问题是如何在从lineItem表获取数据之前创建发票?

    我将这些表用于在线购物车。

    我很难解释这个问题。希望你理解,谢谢!

1 个答案:

答案 0 :(得分:1)

听起来您在插入订单项记录之前有一个外键约束强制存在发票记录。很难准确地说,基于你的问题的措辞,但可能是类似的。

--Table variable to hold line items
DECLARE @lineItems TABLE
(
   InvoiceNumber INT,
   Quantity INT
)

INSERT INTO @lineitems VALUES(1,1) INSERT INTO @lineitems VALUES(1,2)

--ADD INVOICE RECORD FIRST AND SUM Quantities etc.... INSERT INTO Invoice SELECT InvoiceNumber,SUM(Quantity) FROM @lineItems GROUP BY InvoiceNumber

--NOW YOU CAN ADD LINE ITEMS INSERT INTO LineItems SELECT * FROM @lineItems

如果这是你的目标,这是你可以使用的模式。

如果您想要在用户点击网页上的添加时动态插入这些LineItem。我不会以这种方式使用LineItem SQL表进行缓存。在不了解您的应用程序的情况下,很难说,但您确实应该将此数据缓存在HTTP会话或客户端中(数组,json,本地存储等)。如果您选择将此作为SQL表选择,只需创建一个没有约束的新LineItem,然后在上面类似,您可以使用该表插入LineItem表。