SQL Denormalization,将表列与另一个表列组合

时间:2012-06-04 00:33:17

标签: mysql denormalization

我在将数据库中的表连接起来时遇到问题,我希望以特定的顺序显示它,这是示例。

表:product

product_id product_price product_qty
1          5.25          100

表:product_detail

product_id product_name product_generic_name
1          Alcohol      Isoprophyl Alcohol

我希望JOINING的结果为

product_id product_name product_generic_name product_price product_qty
1          Alcohol      Isoprophyl Alchohol  5.25          100

我失败的代码是:

SELECT `product_detail`.`product_name`,`product_detail`.`product_name`,`product_detail`.`product_generic_name` 
FROM `product_detail`
UNION
SELECT * FROM `product`

但结果不是我需要的,它不会只添加行的列。 请给我关于如何解决这个问题的建议,

1 个答案:

答案 0 :(得分:1)

SELECT p.product_id,
       product_name ,
       product_detail,
       product_generic_name ,
       product_price, 
       product_qty
FROM product as p
       inner join product_detail as pd on p.id = pd.id

您可能希望阅读一些有关如何连接表的mysql教程,因为这可能很简单MySQL Reference manual

根据您的评论,这是另一种尝试:

Select * from
         (SELECT p.product_id,
                 product_name ,
                 product_detail,
                 product_generic_name ,
                 product_price, 
                 product_qty
         FROM product as p) as newTable

或者,如果你想要别的东西,你可以尝试临时表。

create temporary table new_table
SELECT p.product_id,
                 product_name ,
                 product_detail,
                 product_generic_name ,
                 product_price, 
                 product_qty
         FROM product as p

然后在同一个脚本中,无论你调用它,你都可以尝试:

从new_table中选择*