SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 06.04.2011 18:53:38

Евген
Участник
Зарегистрирован: 26.01.2011
Сообщений: 17

Объединение данных из таблиц

Коллеги, приветствую !
Есть вопрос следующего содержания:
Имеется 2 базы (primary и secondary)
в primary содержится инфа по инвентаризованным компьютерам следующего вида:

Дата инвентаризации| Имя АРМ| Процессор| S/N BIOS| Операционная система| IP адрес| MAC Адрес|

В secondary к каждому АРМ'у содержатся записи по имеющимся учётным записям и каждому АРМ'у из primary соответсвует несколько записей из secondary, т.к. на каждом АРМ'е несколько учётных записей пользователей, пример таблицы

Дата инвентаризации| Имя АРМ| login| isadmin| disabled|

Можно ли сделать такой запрос, чтобы данные из таблицы secondary по совпадению общих полей (Дата инвентаризации | Имя АРМ) добавлялись в результирующую строчку к данным из primary, например так

Дата инвентаризации| Имя АРМ| Процессор| S/N BIOS| Операционная система| IP адрес| MAC Адрес| login1| isadmin1| disabled1| login2| isadmin2| disabled2| login3| isadmin3| disabled3|

JOIN случайно не для этого ? - не разу им не пользовался....

Смысл в том, что мне надо собрать такую матрицу по ~ 3000 компов...   :-(

Отредактированно Евген (06.04.2011 19:17:41)

Неактивен

 

#2 06.04.2011 22:26:57

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Объединение данных из таблиц

С помощью join вы получите следующую конструкцию:

Дата инвентаризации| Имя АРМ| ...| MAC Адрес| login1| isadmin1| disabled1|
Дата инвентаризации| Имя АРМ| ...| MAC Адрес| login2| isadmin2| disabled2|
...
Дата инвентаризации| Имя АРМ| ...| MAC Адрес| login4| isadmin4| disabled4|

Неактивен

 

#3 07.04.2011 06:37:16

Евген
Участник
Зарегистрирован: 26.01.2011
Сообщений: 17

Re: Объединение данных из таблиц

А можно ли как-нибудь запросом получить желыемый вид (матрицей)?

Дата инвентаризации| Имя АРМ| Процессор| S/N BIOS| Операционная система| IP адрес| MAC Адрес| login1| isadmin1| disabled1| login2| isadmin2| disabled2| login3| isadmin3| disabled3|

Отредактированно Евген (07.04.2011 12:59:35)

Неактивен

 

#4 07.04.2011 13:06:42

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Объединение данных из таблиц

В частом случае, если одной записи из primary соответствуют не более 3-ёх из secondary, можете написать 3 раза join с громоздким условием.

Неактивен

 

#5 07.04.2011 14:29:09

Евген
Участник
Зарегистрирован: 26.01.2011
Сообщений: 17

Re: Объединение данных из таблиц

Ну хорошо...
давайте хоть такой пример разберём...
всё равно надо попробовать двигаться в этом направлении...

Неактивен

 

#6 07.04.2011 14:41:47

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Объединение данных из таблиц

Евген написал:

давайте хоть такой пример разберём...

Ввел вас в заблуждение sad даже в частном случае не получиться.

Евген написал:

всё равно надо попробовать двигаться в этом направлении...

Сделайте 1 join, а потом обрабатывайте результат в клиентском приложении, добиваясь желаемого вида (например, сохраняйте в массив нужного вам вида).

Неактивен

 

#7 07.04.2011 15:44:04

Евген
Участник
Зарегистрирован: 26.01.2011
Сообщений: 17

Re: Объединение данных из таблиц

Угу...   сейчас так и делаю...
моментально получаю рекордсет primary, потом его полностью перебирая делаю к нему выборку из secondary и результат помещаю в Excel. Сервер лежит 8 минут sad
Поэтому и задался вопросом оптимизации...
пока как временное решение эти операции вынес в регламентные (на ночь) но хотелось бы прибавить серверу оперативности в виде алгоритмов sql запроса и вернуть эти операции в онлайн...

Неактивен

 

#8 07.04.2011 16:03:40

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Объединение данных из таблиц

Вы можете сделать primary join secondary и полученный результат обрабатывать. В этом случае не придется делать кучу запросов к secondary.

Неактивен

 

#9 07.04.2011 17:16:51

Евген
Участник
Зарегистрирован: 26.01.2011
Сообщений: 17

Re: Объединение данных из таблиц

Это как так ?
Объясните что в рекордсете получиться ?
и каким запросом его собрать ?

Неактивен

 

#10 07.04.2011 18:03:49

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Объединение данных из таблиц

Евген написал:

Объясните что в рекордсете получиться ?

пост №2 в этой теме

Евген написал:

и каким запросом его собрать ?

primary join secondary using(`Дата инвентаризации`,`Имя АРМ`)

Неактивен

 

#11 07.04.2011 18:45:05

Евген
Участник
Зарегистрирован: 26.01.2011
Сообщений: 17

Re: Объединение данных из таблиц

Угу...  и за это спасибо...   :-)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson