|
MySQL.RU - Webboard
Вернуться
Вопрос по теории (Green) 18/05/2005 - 16:52:02
Re: Вопрос по теории (Alec) 18/05/2005 - 17:02:39
Re: Вопрос по теории (Green) 18/05/2005 - 17:22:42
Re: отлично, блин! )) (++) (Alec) 18/05/2005 - 19:08:51
Re: отлично, блин! )) (++) (Green) 18/05/2005 - 19:22:50
Re: отлично, блин! )) (++) (Marat_L) 19/05/2005 - 09:54:26
Re: отлично, блин! )) (++) (Валентин) 19/05/2005 - 10:09:19
Re: 2Валентин (Marat_L) 19/05/2005 - 10:29:14
Re: 2Marat_L (Валентин) 19/05/2005 - 12:56:25
Re: А вот и запутанное объяснение (Green) 19/05/2005 - 13:34:23
Re: А может тебе просто SELECT..JOIN нужен? (Marat_L) 19/05/2005 - 13:53:03
Re: А может тебе просто SELECT..JOIN нужен? (Green) 19/05/2005 - 14:51:16
Re: А ты можешь перепланировать базу? (Marat_L) 19/05/2005 - 15:56:29
Re: Могу (Green) 19/05/2005 - 16:31:39
Re: Еще один пример реала (Валентин) 19/05/2005 - 16:41:55
Re: Еще один пример реала (Green) 19/05/2005 - 16:57:38
Re: Рулить (Валентин) 19/05/2005 - 19:03:10
Re: Рулить продолжение (Валентин) 19/05/2005 - 19:07:11
Re: О задаче (Валентин) 19/05/2005 - 19:12:20
Re: О задаче (Green) 19/05/2005 - 19:51:48
> Original message text:
> From: Green - 18/05/2005 - 16:52:02
> Subject:Вопрос по теории
> -----------------
> Здравствуйте.
> Есть вопрос по теории.
> Можно ли в MySQL одной командой реализовать запрос подобного вида:
> UPDATE
> Если ничего не изменил, тогда
> INSERT
>
>
From: Green - 19/05/2005 - 13:34:23
Subject:А вот и запутанное объяснение
-----------------
Поясняю задачу.
Есть большая (несколько десятков столбцов) таблица - T1
Есть множество мелких (от 2 и более столбцов) - T2..Tn
Идея такая, объединить все таблицы T2..n в таблицу T1
Проблемы:
Одна таблица(T2..n) может связаться с другой через несколько промежуточных таблиц
Если грубо говорить, то в одной таблице есть поля, которые пойдут в таблицу T1, в столбцы 1,9,17
Другая таблица со столбцами, которые пойдут во 2 и 3
Они ни как не связываются, при этом обе должны присутствовать в таблице T1
Потом появится таблица(T4) 1,2,5
Часть записей, которые проапгрейдятся до вида 1,2,5,9,17, другая до 1,2,3,5,
А часть должна попасть просто в виде 1,2,5, т.к. связать ни с чем не удалось
Пока решение такое (как я понял 1 командой это не сделать):
Добавить в таблицах(T2-n) столбец-метку
UPDATE T1,T2 SET T2.update_flag=1,T1.a1=T2.b1, T1.a2=T2.b2, T1.a3=T2.b3, WHERE T1.a1=T2.b1 OR T1.a2=T2.b2 OR T1.a3=T2.b3
А потом
INSERT t1 SET t1.a1=t2.b1, t1.a2=t2.b2, t1.a3=t2.b3
INSERT INTO T1 (a1,a2,a3)
SELECT * FROM T2 WHERE update_flag!=1;
А потом еще нужно в таблице T1 объединить те строки, которые теперь можно объединить
Фуф, надеюсь я нигде не напутал
Всем премного благодарен, жду более приятных решений
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
22075
|
|