簡體   English   中英

如何通過合並多個表中的相似元素來創建新表?

[英]How do I create a new table through combining similar elements from multiple tables?

我是SQL的完全新手,並且嘗試自己在一個班級中的項目中學習它,所以我對嘗試弄清楚如何做到這一點感到迷失/不知所措...我昨天才開始。

本質上,我正在嘗試建模一個超級基本的倉儲呼叫,在該呼叫中,您可以從存儲的商品庫中獲得來自不同供應商的單獨需求表。 您也有一個表,其中包含與那些項目有關的信息。 像這樣:

CREATE TABLE Properties (
SKU INT PRIMARY KEY,
Xdim FLOAT,
Ydim FLOAT,
Zdim FLOAT,
Weight FLOAT,
QTYavail INT
);

INSERT INTO Properties (
SKU, Xdim, Ydim, Zdim, Weight, QTYavail)
VALUES
(1001, 3, 4, 5, 2.5, 50),
(1002, 2, 4, 6, 1.15, 60); 

CREATE TABLE Order_1 (
SKU INT,
QTY INT);

CREATE TABLE Order_2 (
SKU INT,
QTY INT);

CREATE TABLE Order_3 (
SKU INT,
QTY INT);

INSERT INTO Order_1 (
SKU, QTY)
VALUES
(1001, 10),
(1002, 4);

INSERT INTO Order_2 (
SKU, QTY)
VALUES
(1001, 3),
(1002, 1);

INSERT INTO Order_3 (
SKU, QTY)
VALUES
(1001, 6);

我的目標是將所有這些結合到一個綜合表中,在這里我將每個SKU的總需求結合起來...例如,在這里,SKU 1001的數量為19。我在表上的列為

SKU
Xdim
伊迪姆
Zdim
重量
數量需求
數量

我已經設法通過以下代碼學習如何結合訂單和相對SKU需求:

SELECT SKU, SUM(QTY) QTYdemand
from
(
SELECT * FROM Order_1
UNION ALL
SELECT * FROM Order_2
UNION ALL
SELECT * FROM Order_3
) x
group by SKU;

但是我不知道如何進一步使用此查詢,也不知道這是否是正確的開始。

任何幫助或建議都將不勝感激。

訂單應通過其唯一的ID(主鍵)進行個性化處理,而不是通過將其存儲在單獨的表中來進行個性化。

在大多數情況下,您將維護一個訂單表和一個產品表。 然后,您將在數據庫中的訂單和產品之間存在多對多關系,這將由帶有復合鍵的第三張表表示(主鍵由Order中的id和Product中的id組成)。

因此,您最終得到三個表(斜體主鍵):

訂單: id ,日期,與整個訂單相關的任何其他數據

產品: id ,名稱,與該產品相關的任何其他數據

OrderProduct: order_id,product_id ,數量

Order表包含每個訂單的記錄,Product表包含每個產品的記錄,而OrderProduct表包含訂單中每個產品的記錄。 OrderProduct的每個訂單可以有多行,每個產品可以有多行,但是特定訂單和特定產品的唯一組合。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM