GUI инструмент для объединения таблиц

Тема в разделе "Базы данных", создана пользователем DenisK, 13 апр 2011.

Модераторы: latteo
  1. DenisK

    DenisK

    Регистр.:
    8 фев 2007
    Сообщения:
    206
    Симпатии:
    14
    Задача - при проектировании новых проектов нужно объединять данные из таблиц разного формата.

    Самый простой пример

    Таблица 1:
    - Адрес
    - телефон

    Таблица 2:
    - Адрес
    - телефон
    - пароль
    - кодировка
    - ip
    - дата регистраии


    И вот нужно во вторую таблицу внести данные из первой.

    Есть ли такие инструменты, которые бы помогали это делать в графическом режиме.
    идеальный вариант, чтобы как в Excele
     
  2. horpah

    horpah

    Регистр.:
    21 июн 2010
    Сообщения:
    199
    Симпатии:
    55
    Вы имеете ввиду, чтобы как в экселе: выделил столбец и копи-пасте в другую таблицу?. Такой инструмент вряд ли существует, ибо обычное количество строк в экселе на 2-3 порядка меньше строк БД. Если ваша задача требует перенести данные из одной таблицы в другую с разными структурами, просто напишите конкретный скрипт под конкретную задачу. Времени уйдет на написание не много, да и задача, кажется, уникальная, и если сейчас она действительно стоит, то повториться она врядли. IMHO.
     
  3. DenisK

    DenisK

    Регистр.:
    8 фев 2007
    Сообщения:
    206
    Симпатии:
    14
    ну должны же быть gui-решения
    просто бывают очень разнобразные задачи, под каждую скрипт писать достаточно геморно

    ну пусть не как в экселе
    но должны же быть инструменты по объединению таблиц

    p.s. или это может быть программа имеющий мощный инструментарий импорта (например из csv)
    чтобы можно было указывать в какую колонку какие данные
     
  4. horpah

    horpah

    Регистр.:
    21 июн 2010
    Сообщения:
    199
    Симпатии:
    55
    а чем сложно написать примерно так:
    PHP:
    $c=mysql_connect('user','pass');
    mysql_select_db('dbname');
    $insertquery="INSERT INTO `table2` (pole21, pole22..pole2N) VALUES ";
    $data=array();
    $res=mysql_query(SELECT pole11pole12.. pole1N FROM table1);
    while(
    $row=mysql_fetch_assoc){
     
    $data[]="({$row['pole11']}{$row['pole12']}..{$row['pole1N']},$defvalue1$defvalue2...defvalueN)"//поскольку число столбцов может не совпадать NOT NULL поля придется забить чем-то вроде $defvalue
    }
    $insertquery.=join(', ',$data);
    mysql_query($insertquery);

    Если записей много - сделайте этот код в цикле, где выборка будет по 500-1000 записей. SELECT придется добавить LIMIT ну и считать все строки оставшиеся. Можете оформить типа класса/функции, где подставятся только поля ИЗ и В, например так:
    PHP:
    db_copydata(array('field11',field12..field1N), array('field21',field22..field2N));
     
    DenisK нравится это.
  5. DenisK

    DenisK

    Регистр.:
    8 фев 2007
    Сообщения:
    206
    Симпатии:
    14
    Спасибо но хотелось именно визуальный мощный инструментарий т.к. задачи возникают самые разные а времени на на проектирование и отладку скриптов нужно на порядок больше.

    Я уже нашел две прекрасные программы.

    Devart dbForge Studio for MySQL
    EMS SQL Manager for MySQL
     
  6. horpah

    horpah

    Регистр.:
    21 июн 2010
    Сообщения:
    199
    Симпатии:
    55
    Знаю эти программы,использую. Думал даже их посоветовать, но вопрос то стоял другой.
     
  7. DenisK

    DenisK

    Регистр.:
    8 фев 2007
    Сообщения:
    206
    Симпатии:
    14
    они этим критериям соответствуют на все сто.