Возможно ли сделать UPDATE после сравнения в нескольких таблицах? Пример: У меня три таблицы. В первой собраны диски с музыкой. Сортированы по id Во второй собраны исполнители. Они тоже сортированы по id_lieg (получаться, что за каждым диском из первой таблицы запись исполнителя повторяеться) А в третьей собраны данные где эти диски лежат на полках. Сортировка также по id_lieg. Сейчас тут только возможность при поступлении нового диска внести его в базу как новый и нет возможности закрепить его за одним испонителем. Вопрос: Как мне сделать правильно UPDATE, чтобы проверить БД на наличие повторяющихся исполнителей и соединить их в одно (закрепить им один id), паралельно прописать в соседние таблицы столбец этот id_interpr. Вот по этому запросу я вывожу всё на экран: Код (Text): SELECT l.lieg_nr, lg.id, l.id AS l_lieg, lg.id_liegenschaften AS lg_lieg, lhh.id_liegenschaften AS lhh_lieg, lg.gebaeude_nr, lg.strasse, lg.hausnummer, lg.plz, lg.ort, lhh.hv_anrede, lhh.hv_name, lhh.hv_vorname FROM liegenschaften_gebaeude AS lg, liegenschaften AS l, liegenschaften_hv_hm AS lhh WHERE lg.id_liegenschaften = l.id && lg.id_liegenschaften = lhh.id_liegenschaften ЗЫ: Я как это вижу, поправьте если что не так: В таблицу lhh добавить столбец hv_id, сделать проверку поторяющиеся записи и присвоить им только один hv_id, по которому можно будет определять сколько у него записей в lg и l В какую сторону мне смотреть, чтобы не ждать ответа, а делом заняться? ЗЗЫ: Тут старая БД и мне надо перенести данные в новую. Вот и хочу упростить её.
Re: Возможно ли сделать UPDATE после сравнения в нескольких Класс!!! Сам не дошёл бы. Буду ковырять как мне это в моём случае применить. Есть идеи как мне лучше hv_name упорядочить до одного раза, чтобы он больше не повторялся, но записи из других таблиц остались за ним? Как мне правильно переписать l_lieg, lg_lieg, lhh_lieg у которых один и тотже hv_name?
Re: Возможно ли сделать UPDATE после сравнения в нескольких не знаю, тебе надо самому подумать, как тебе удобно и чем пользоваться. если ты собираешься произвести операци с данными типа твоей, и боишься, что кто-то или что-то может в середине процессса с этими данными что-то сделать, или сделать что-то на основе этих данных - то стоит юзать транзакции. =)
Re: Возможно ли сделать UPDATE после сравнения в нескольких Я наверное не правильно объяснил мою проблему, мне просто надо исключить повторяющиеся записи, чтобы пользоваться по человечески БД. Потому, что если я хочу посмотреть сколько у hv_name есть адресов это просто невозможно на данный момент. Мне надо ещё раз сортировать по hv_vorname, т.к. hv_name может сущесвовать несколько раз. А так был бы один нормальный hv_id (которого сейчас нет) и по нему индексируются обе другие таблицы. Мне это один раз надо сделать на локалке, чтобы экспортировать данные и импртировать в дургую БД. Вот и вопрос, как это можно сделать лучше. Спрашиваю, потому, что всё что я могу, выучил методом тыка и вопросов, мне никто не показывал как работать с этим и о много я просто не знаю что существует вообще в природе
Re: Возможно ли сделать UPDATE после сравнения в нескольких чтобы исключить повторяющиеся записи и склеить их, тебе надо просто выбрать их и решить, что оставить, а что убить. но пока ты будешь это делать, могут быть параллельные вызовы скрипта, или скриптов, которые будут что-то с этими данными делать, и могут возникнуть дубли заново и прочие косяки. вот чтобы этого избежать - юзай транзакции. а как склеить всё в одну - это уже тебе решать самому.
Re: Возможно ли сделать UPDATE после сравнения в нескольких Мне и правда надо исключить дубли, с этими данными никто не работает. Я их скинул на локалку и собираюсь перенести в другую БД (что в принципе уже и сделал, пока не напаролся на вот этот косяк. Я уже и работал с ними, но с такой структурой работать не возможно) Вот и хочу упростить. Какие методы для этого существуют? Вот конкретно в моём примере как мне правильно переписать l_lieg, lg_lieg, lhh_lieg у которых один и тот же hv_name? Как SELECT сделать я знаю, а как переписать эти столбцы. Вот тут чуток не догоняю. Поэтому и правильно мысль озвучить не могу
Re: Возможно ли сделать UPDATE после сравнения в нескольких На примере из первого сообщения: например взять первый lhh_lieg (8758) и присвоить его четырём последующим... как-то так. Если я прав, то у меня тогда в БД останеться один раз hv_name, но я смогу по этому номеру получить все lieg_nr
Re: Возможно ли сделать UPDATE после сравнения в нескольких по какому правилу? почему этот присвоить другим, а не другой этому?
Re: Возможно ли сделать UPDATE после сравнения в нескольких Никакого правила, просто самый первый который попался на глаза. У меня 11К строчек, в ручную муторно обрабатывать. Сейчас на пробу сделал экспорт в csv и первую тысячу ручками поправил. Буду пробовать что из этого получиться. Тут муторно всё, сам не разобрался толком ещё. Мне всю инфу не в 3 таблицы надо делить будет, а 4ре. По другому не вижу выхода. Но для начала надо изменить номера. Отдал вчера ребятам из бугалтерии, пусть в экселе руками правят. Есть тут ещё такая фигня, что под одним lieg_nr могут несколько разных strasse, hausnummer, plz, ort быть. Поэтому буду выгружать в другую таблицу и присваивать один lhh_lieg Как-то так... Спасибо тебе за наводящие вопросы. Помогают мне с другой стороны увидеть проблему и решать её!