SQL денормализация, объединение столбцов таблицы в столбцы другой таблицы
У меня проблемы с объединением таблиц в моей базе данных, я хочу отобразить их в определенном порядке, вот пример.
Таблица: 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`
Но результат не то, что мне нужно, он не добавляет столбцы только строки. Пожалуйста, дайте мне совет, как решить эту проблему,
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.
На основании ваших комментариев здесь можно попробовать еще один вариант:
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
Затем в том же сценарии или как бы вы его ни называли, вы можете попробовать:
выберите * из новой таблицы