如何查询从2个单独的表创建新的数据库表?

时间:2012-03-18 01:22:32

标签: sql ms-access

我有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代码都可以。感谢。

2 个答案:

答案 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)
)