Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Замена значений полей, значениями из другой таблицы. / 5 сообщений из 5, страница 1 из 1
05.11.2014, 22:29:43
    #38796776
Замена значений полей, значениями из другой таблицы.
Добрый вечер!
Только вступил на путь изучений MySQL и, видимо, уже накосячил так, что все переделывать придется.
Вопрос этот задаю в надежде, что не все потеряно...

Есть две таблицы:
table1: id(INT), name(VARCHAR), house_id(TINYINT), designer_id(TINYINT), parfumer_id(TINYINT), aroma_id(TINYINT);
table2: id(INT), name(VARCHAR);

table1 - таблица, содержащая информацию о парфюме. Поля house_id, designer_id, parfumer_id и aroma_id получают в качестве значения id из table2
table2 - таблица, содержащая каталог (некоторые поля опустил из-за ненадобности в данном примере).

Ситуация следующая, нужно так получить все данные из таблицы table1, чтобы вместе цифр в полях house_id, parfumer_id и т.д. подставлялись значения name из таблицы table2.

Совсем не представляю как это можно реализовать, потому что значения почти всех полей из первой таблицы должны быть заменены на значения таблицы table2, которые хранятся в одном и том же поле.

Возможно ли реализовать подобный запрос?
...
Рейтинг: 0 / 0
05.11.2014, 23:03:15
    #38796791
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена значений полей, значениями из другой таблицы.
- пример данных в table1
- пример данных в table2
- что должно быть на выходе
...
Рейтинг: 0 / 0
06.11.2014, 01:04:20
    #38796839
Станислав Клевцов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена значений полей, значениями из другой таблицы.
Илья ЗобенькоДобрый вечер!
Только вступил на путь изучений MySQL и, видимо, уже накосячил так, что все переделывать придется.
Вопрос этот задаю в надежде, что не все потеряно...

Есть две таблицы:
table1: id(INT), name(VARCHAR), house_id(TINYINT), designer_id(TINYINT), parfumer_id(TINYINT), aroma_id(TINYINT);
table2: id(INT), name(VARCHAR);

table1 - таблица, содержащая информацию о парфюме. Поля house_id, designer_id, parfumer_id и aroma_id получают в качестве значения id из table2
table2 - таблица, содержащая каталог (некоторые поля опустил из-за ненадобности в данном примере).

Ситуация следующая, нужно так получить все данные из таблицы table1, чтобы вместе цифр в полях house_id, parfumer_id и т.д. подставлялись значения name из таблицы table2.

Совсем не представляю как это можно реализовать, потому что значения почти всех полей из первой таблицы должны быть заменены на значения таблицы table2, которые хранятся в одном и том же поле.

Возможно ли реализовать подобный запрос?

конечно же можно :

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select t1.ID
     , t1.NAME
     --, t1.HOUSE_ID
     , t2_1.NAME as HOUSE_NAME
     , t1.DESIGNER_ID
     --, t1.PARFUMER_ID
     , t2_2.NAME as PARFUMER_NAME
     , t1.AROMA_ID 
  from table1 as t1
  join TABLE2 as t2_1 on t2_1.ID = t1.HOUSE_ID
  join TABLE2 as t2_2 on t2_2.ID = t1.PARFUMER_ID
...
Рейтинг: 0 / 0
06.11.2014, 01:07:37
    #38796840
Станислав Клевцов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена значений полей, значениями из другой таблицы.
Станислав КлевцовИлья ЗобенькоДобрый вечер!
Только вступил на путь изучений MySQL и, видимо, уже накосячил так, что все переделывать придется.
Вопрос этот задаю в надежде, что не все потеряно...

Есть две таблицы:
table1: id(INT), name(VARCHAR), house_id(TINYINT), designer_id(TINYINT), parfumer_id(TINYINT), aroma_id(TINYINT);
table2: id(INT), name(VARCHAR);

table1 - таблица, содержащая информацию о парфюме. Поля house_id, designer_id, parfumer_id и aroma_id получают в качестве значения id из table2
table2 - таблица, содержащая каталог (некоторые поля опустил из-за ненадобности в данном примере).

Ситуация следующая, нужно так получить все данные из таблицы table1, чтобы вместе цифр в полях house_id, parfumer_id и т.д. подставлялись значения name из таблицы table2.

Совсем не представляю как это можно реализовать, потому что значения почти всех полей из первой таблицы должны быть заменены на значения таблицы table2, которые хранятся в одном и том же поле.

Возможно ли реализовать подобный запрос?

конечно же можно :

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select t1.ID
     , t1.NAME
     --, t1.HOUSE_ID
     , t2_1.NAME as HOUSE_NAME
     , t1.DESIGNER_ID
     --, t1.PARFUMER_ID
     , t2_2.NAME as PARFUMER_NAME
     , t1.AROMA_ID 
  from table1 as t1
  join TABLE2 as t2_1 on t2_1.ID = t1.HOUSE_ID
  join TABLE2 as t2_2 on t2_2.ID = t1.PARFUMER_ID



только join надо заменить на left join (поправка)
...
Рейтинг: 0 / 0
06.11.2014, 09:51:46
    #38796984
Замена значений полей, значениями из другой таблицы.
Станислав Клевцов, все получилось! Огромное спасибо!
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Замена значений полей, значениями из другой таблицы. / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]