這可能是一個愚蠢的問題,因爲我在PostgreSQL初學者,但我想要做的是如何將表結轉成列的PostgreSQL
我有一個表稱爲產品和產品內部有3欄名稱,價格,到期日。現在我有了一個叫做4列的第二張表。產品,purchasePrice,金額和CountryRecieved。
我要的只是將產品列引用到產品表中,以便它具有產品表的所有信息?
這能行嗎?
這可能是一個愚蠢的問題,因爲我在PostgreSQL初學者,但我想要做的是如何將表結轉成列的PostgreSQL
我有一個表稱爲產品和產品內部有3欄名稱,價格,到期日。現在我有了一個叫做4列的第二張表。產品,purchasePrice,金額和CountryRecieved。
我要的只是將產品列引用到產品表中,以便它具有產品表的所有信息?
這能行嗎?
的關鍵您需要在閱讀了概念:
在你的情況下,查詢構造手動分配到Orders表的每一行。這是規範化最基本的方面之一:每個數據塊都在一個地方,因此更新不會使其不一致。
JOIN
。例如,要獲取名稱和有序的產品數量,你可以寫:SELECT
P.Name,
O.Amount
FROM
Products as P
INNER JOIN
Orders as O
-- This "ON" clause tells the database how to look up the foreign key
On O.ProductId = P.ProductId
ORDER BY
P.Name
在這裏,我使用的「內部連接」;還有「左外連接」和「右外連接」,當一邊只有一些行滿足條件時可以使用。我建議你找到一個教程來解釋它們,比我在一個段落中可以做得更好。
假設名字列在產品表和訂單表指的是它的產品列鍵,你可以加入對相關欄(S)這兩個表,並得到所有的信息:
select
o.*, p.*
from orders o
join products p on o.product = p.name;