我有2张桌子。
表1包含产品ID和产品名称(每行都有唯一的产品ID)。
1 Name1
2 Name2
3 Name3
表2包含产品ID和颜色(红色,绿色,蓝色)和价格。根据产品ID的关联颜色,最多可以有3行具有相同的产品ID。
1 Red $6
1 Blue $2
2 Blue $3
3 Green $5
我想查询以创建一个包含以下列的新表:产品ID,产品名称,RedPrice,GreenPrice和BluePrice。以上2个样本导致:
1 Name1 $6 Null $2
2 Name2 Null Null $3
3 Name3 Null $5 Null
我该如何进行此查询? SQL或Microsoft Access代码都可以。感谢。
答案 0 :(得分:1)
假设每种产品每种价格不超过一个:
SELECT
products.ProductID,
products.ProductName,
red .Price AS RedPrice,
green.Price AS GreenPrice,
blue .Price AS BluePrice
FROM products
LEFT JOIN prices red ON products.ProductID = red .ProductID AND red .Color = 'Red'
LEFT JOIN prices green ON products.ProductID = green.ProductID AND green.Color = 'Green'
LEFT JOIN prices blue ON products.ProductID = blue .ProductID AND blue .Color = 'Blue'
答案 1 :(得分:0)
如果你想创建一个新表,SQL可能是这样的:
CREATE TABLE Product
(
ProductID int NOT NULL,
ProductName varchar(50),
Color varchar(25),
Price decimal(8,3)
)