在Postgresql中创建具有多对一关系的表

时间:2014-12-09 08:37:52

标签: sql postgresql

我是Postgresql和数据库的新手。我有下表Shop

Create table Shop( 
id integer ,
Name varchar(50),
Adress varchar(50) )

我有第二个表产品

Create table Product( 
id integer ,
Name varchar(50),
Price float)

如何在产品和商店之间创建一对一的关系?

1 个答案:

答案 0 :(得分:0)

使用一个单独的表,称为联结表或联接表(不幸的是还有许多其他名称)

CREATE TABLE Products_in_shop (
   shop_id INTEGER,
   product_id INTEGER
)

然后,您可以JOIN对其进行特定查询,例如:特定商店的产品:

SELECT p.Name
FROM Shop AS s
JOIN Products_in_shop AS pis ON pis.shop_id = s.id
JOIN Product AS p ON pis.product_id = p.id
WHERE s.Name = 'MyShop'