2012-06-04 3 views
1

У меня возникли проблемы с объединением таблиц в моей базе данных, я хочу отобразить их в определенном порядке, например, на примере.SQL 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 

И я хочу РЕЗУЛЬТАТ соединяющихся быть

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 Reference manual

Based на ваши комментарии здесь есть еще одна возможность:

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

+0

Спасибо г-н dreza его действительно большая помощь! –

+0

Быстро вопрос, что будет новым именем таблицы? Это таблица 'p'? –

+0

@anoldgangstah. Результатом будет результат, а не объект таблицы как таковой, поэтому он не будет иметь имя напрямую. Зачем вам нужно имя таблицы? – dreza

Смежные вопросы