【问题标题】:SQL Denormalization, Combining table columns to another table columnsSQL非规范化,将表列组合到另一个表列
【发布时间】:2023-04-06 16:42:01
【问题描述】:

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

表:product

product_id product_price product_qty
1          5.25          100

表:product_detail

product_id product_name product_generic_name
1          Alcohol      Isoprophyl Alcohol

我希望加入的结果是

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`

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

【问题讨论】:

    标签: mysql denormalization


    【解决方案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

    根据您的 cmets,这里是另一种尝试:

    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
    

    然后在同一个脚本中,或者无论你怎么称呼它,你都可以尝试:

    从新表中选择 *

    【讨论】:

    • 谢谢 dreza 先生,真的帮了大忙!
    • 快速提问,表的新名称是什么?是表p吗?
    • @anoldgangstah 结果将是一个结果集,而不是一个表实体,因此它不会直接有名称。为什么需要表名?
    • 我需要一个表名,这样如果我添加一个产品,它将自动更新,当我应用该代码时,似乎新产品根本没有显示。但是如果我 SELECT product 它将自动填充,我该如何在这个新的未知表中执行此操作?
    • @anoldgangstah 我有点困惑。您没有提到在您的问题中添加任何内容吗?您是否尝试在连接表上进行插入或更新?
    猜你喜欢
    • 2013-02-05
    • 1970-01-01
    • 2013-11-21
    • 2012-12-31
    • 1970-01-01
    • 1970-01-01
    • 2017-01-23
    • 2015-07-22
    • 2014-10-03
    相关资源
    最近更新 更多