Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обьединение таблиц. 
:(
    Опции темы
ShurikA
Дата 9.2.2008, 08:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



есть следующие таблицы:

table1
| table_name | item_id |
------------------------------
|big_items     | 1           |
------------------------------
|small_items | 1           |


big_items
| id | name |
---------------
|1   | item1 |


small_items
| id | name |
---------------
|1   | item2 |



Можно ли их соеденит в подин запрос? и как?


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
skyboy
Дата 9.2.2008, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



сделать один запрос на выборку данных из трех таблиц? Вот так можно:
Код

SELECT `item_id`, table_name`
FROM `table1`
UNION ALL
SELECT `id`,`name`
FROM `big_items`
UNION ALL
SELECT `id`,`name`
FROM `small_items`

Или объединить в одну таблицу одним запросом? Тогда так(подразумеваем, что таблица `summary` создана и имеет такую же структуру, как и приведенные тобой три таблицы):
Код

INSERT INTO `summary`(name)
SELECT `table_name`
FROM `table1`
UNION 
SELECT `name`
FROM `big_items`
UNION 
SELECT `name`
FROM `small_items`

ЗЫ Название темы мог бы внятнее придумать. Судя из поста, тебе нужен ответ на первый вариант(мой вариант) вопроса(как сделать выборку данных из трех таблиц одновременно), а из заголовка темы - второй вариант(обединить записи из трех таблиц в одну). Противоречиво как-то...
PM MAIL   Вверх
ShurikA
Дата 9.2.2008, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



Цитата(skyboy @  9.2.2008,  09:05 Найти цитируемый пост)

ЗЫ Название темы мог бы внятнее придумать. Судя из поста, тебе нужен ответ на первый вариант(мой вариант) вопроса(как сделать выборку данных из трех таблиц одновременно), а из заголовка темы - второй вариант(обединить записи из трех таблиц в одну). Противоречиво как-то... 

На самом деле мне оба не помешают. 
Спасибоsmile

Добавлено через 4 минуты и 2 секунды
Хотя это не совсем то что мне нужно.
Мне нужно выташить данные из тех таблиц которые прописанны в table1.table_name с таким id как в table1.item_id


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
skyboy
Дата 9.2.2008, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



Цитата(ShurikA @  9.2.2008,  12:35 Найти цитируемый пост)
Мне нужно выташить данные из тех таблиц которые прописанны в table1.table_name с таким id как в table1.item_id 

вон оно что, оказывается...
тебе надо что-то типа:
Код

SELECT * 
FROM `table1`
INNER JOIN `table1`.`table_name` as `second_table`
ON `table1`.`item_id` = `second_table`.`id`
?
Такое невозможно. Объясни задачу.

Добавлено через 1 минуту и 20 секунд
Цитата(skyboy @  9.2.2008,  18:33 Найти цитируемый пост)
Такое невозможно

невозможно в общем виде.
но возможно, если имя table_name может иметь только ограниченный набор значений. 
PM MAIL   Вверх
ShurikA
Дата 10.2.2008, 01:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



Цитата(skyboy @  9.2.2008,  18:33 Найти цитируемый пост)
вон оно что, оказывается...
тебе надо что-то типа:

Именно так...


Цитата(skyboy @  9.2.2008,  18:33 Найти цитируемый пост)
Такое невозможно.

Какие есть варианты?


Цитата(skyboy @  9.2.2008,  18:33 Найти цитируемый пост)
Объясни задачу.

Представь себе Shopping Cart в который можно добавлять предметы разного типа, соответственно с разных таблиц. Ты сразу скажешь: зачем так сложно, почему нельзя держать всё в одной, и в дополнительной таблице типы. Можно, но не в моём варианте. Так как есть обычные предметы в магазине (они так и устроины), а есть заказы которые работают отдельным модулем. При этом хотелось бы иметь возможность добавить всё в одну тележку.


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
skyboy
Дата 10.2.2008, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



Код

SELECT *
FROM `table1`
INNER JOIN `small_items`
ON `table1`.`item_id` = `small_items`.`id`
WHERE `table1`.`table_name` = "small_table"
UNION ALL
SELECT *
FROM `table1`
INNER JOIN `big_items`
ON `table1`.`item_id` = `big_items`.`id`
WHERE `table1`.`table_name` = "big_table"

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0463 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.