SQL объединить 2 таблицы - PullRequest
3 голосов
/ 11 августа 2010

У меня есть 2 отдельных запроса, которые возвращают мне следующие таблицы:

===========================
Id   f_name     l_name  
===========================
15   Little     Timmy
16   John       Doe
17   Baby       Jessica
---------------------------


===========================
Id   item_name  item_price
===========================
15   Camera     100
15   Computer   200
16   Pony       55
---------------------------

В MySQL, как мне объединить 2 в это:

===================================================
Id   f_name     l_name     item_name     item_price
===================================================
15   Little     Timmy      Camera        100
15   Little     Timmy      Computer      200
16   John       Doe        Pony          55
17   Baby       Jessica
---------------------------------------------------

Любая помощь очень ценится. Спасибо.

Ответы [ 5 ]

3 голосов
/ 11 августа 2010

Существует много типов объединений, и это очень интересная и важная тема в управлении базами данных.У собственного Джеффа Этвуда из SO очень хороший пост , описывающий различные типы объединений и случаи, в которых они будут использоваться.

3 голосов
/ 11 августа 2010

выберите
name_table.Id, name_table.f_name, name_table.l_name,
item_table.item_name,
item_table.item_price из name_table слева присоедините item_table к name_table.Id = item_table.Id

Наслаждайтесь!

2 голосов
/ 11 августа 2010

Вам нужно использовать левый внешний объединить :

SELECT names.Id, names.f_name, names.l_name, prices.item_name, prices.item_price
FROM names
 LEFT OUTER JOIN prices
   ON names.Id = prices.Id
0 голосов
/ 11 августа 2010

Если вы хотите регулярно выполнять этот оператор выбора в вашем приложении, вы можете рассмотреть возможность создания представления в базе данных. Представление - это, в основном, комбинация данных в нескольких таблицах. Основным преимуществом использования представления здесь будет упрощение запроса в вашем приложении, поэтому вместо объединения в приложении вы просто выберете все поля в представлении.

Ваше утверждение CREATE VIEW будет более или менее похоже на ответ Дуга, тогда как ваш выбор будет

выбор идентификатора, имя_файла, имя_пункта, имя_пункта, цена_пункта из my_view;

Подробнее о MySQL CREATE VIEW

0 голосов
/ 11 августа 2010

И если вы хотите создать таблицу с таким результатом в базе данных, выполните любое из этих операций выбора / объединения в команде создания таблицы.

CREATE TABLE foobar SELECT ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...