1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
Скрыть объявление

Привет посетитель! У нас на форуме тебе откроются дополнительные разделы, которые скрыты от гостей! А так же ты найдёшь много полезной информации.

Помогите составить правильно SQL запрос

Тема в разделе "База данных", создана пользователем ItCry, 5 фев 2016.

  1. ItCry

    ItCry Участник Пользователь

    Регистрация:
    28 сен 2015
    Сообщения:
    15
    Симпатии:
    3
    Баллы:
    52
    Продублирую тут еще..)
    Всем привет. Нужна помощь тех, кто знает SQL :-)
    В общем есть 2 таблицы. Таблица table1 и table2. Структура у них одинаковая. Т.е. есть куча разных столбцов, таких как ID, icon и т.д..
    В этих таблицах разные значения в столбце icon.
    Необходимо выполнить запрос в таблицу table2. Обновить значения icon у тех ID, у которых в table1 в столбце icon встречается (icon1.). Проблема только в том, что все эти значения в таблице icon разные, т.е. для обновления в table2 эти значения необходимо брать из table1 и сопоставлять с ID в table2. Не знаю, правильно ли я объяснил))

    Пытался что-то сделать сам, но помоему какую-то чушь написал..

    PHP:
    UPDATE table2 t2 SET t2.icon = (SELECT t1.icon FROM table1 t1 WHERE t1.id t2.id)
    WHERE id IN (
      
    SELECT id FROM table1 WHERE icon LIKE '%icon1.%'
    );
    В конечном итоге ошибка 1242 - Subquery returns more than 1 row

    знаю, что где-то на****лся. Но sql знаю поверхностно..
    Может кто-то подскажет?
     
  2. Psycho

    Psycho Я пчела. Бжж-жж... Проверенный

    Регистрация:
    23 янв 2016
    Сообщения:
    1.881
    Симпатии:
    635
    Баллы:
    840
    Может что-то вроде этого?
    INSERT INTO table1 SELECT * FROM table2
     
  3. ItCry

    ItCry Участник Пользователь

    Регистрация:
    28 сен 2015
    Сообщения:
    15
    Симпатии:
    3
    Баллы:
    52
    нет, в том-то и дело, что инсерт не подойдет.
    строки с такими ID существуют уже как в первой, так и во второй таблице...
    Нужно именно обновить значения во второй таблице, взяв эти значения из первой таблицы
     
  4. Psycho

    Psycho Я пчела. Бжж-жж... Проверенный

    Регистрация:
    23 янв 2016
    Сообщения:
    1.881
    Симпатии:
    635
    Баллы:
    840
    Я тоже особо не силен в sql.
    Но попробуй вот так.
    UPDATE table1 SET table1.icon = table2.icon FROM table2 WHERE table1.id = table2.id;
     
  5. Mangol

    Mangol Участник Пользователь

    Регистрация:
    20 май 2015
    Сообщения:
    0
    Симпатии:
    18
    Баллы:
    0
    хоть бы структуру дал.
     
  6. ItCry

    ItCry Участник Пользователь

    Регистрация:
    28 сен 2015
    Сообщения:
    15
    Симпатии:
    3
    Баллы:
    52
    да зачем эта структура то?))
    В общем можно закрывать. Если вдруг кому понадобится, то мне помог вот такой запрос, правда у меня 60к записей и выполнялся он минут 30, но все же результат оправдал себя)
    PHP:
    UPDATE table1table2
    SET table1
    .icon table2.icon
    WHERE table1
    .id table2.id
    AND table2 LIKE '%icon1.%';
     
    Med_ved нравится это.
  7. Mangol

    Mangol Участник Пользователь

    Регистрация:
    20 май 2015
    Сообщения:
    0
    Симпатии:
    18
    Баллы:
    0
    Яб запилил на яве быстрее :D
     
    Psycho нравится это.
  8. Psycho

    Psycho Я пчела. Бжж-жж... Проверенный

    Регистрация:
    23 янв 2016
    Сообщения:
    1.881
    Симпатии:
    635
    Баллы:
    840
    я тебе это и написал... facepalm
     
  9. ItCry

    ItCry Участник Пользователь

    Регистрация:
    28 сен 2015
    Сообщения:
    15
    Симпатии:
    3
    Баллы:
    52
    Во первых, то что написал ты - выдает ошибку синтаксиса. Во вторых сам запрос не удовлетворяет условиям, но это не проблема. Условия я дописал, но MySql все равно ругался на FROM .
     
  10. Psycho

    Psycho Я пчела. Бжж-жж... Проверенный

    Регистрация:
    23 янв 2016
    Сообщения:
    1.881
    Симпатии:
    635
    Баллы:
    840
    Во первых, я за тебя нашел решение. Во вторых, ты отталкивался от него.
    Добавить строчку не проблема, я писал что не мастер sql. Твой запрос в первом посте вообще бред.
    Ну да ладно)
     
  11. ItCry

    ItCry Участник Пользователь

    Регистрация:
    28 сен 2015
    Сообщения:
    15
    Симпатии:
    3
    Баллы:
    52
    Короче спасибо за помощь)
     
  12. Psycho

    Psycho Я пчела. Бжж-жж... Проверенный

    Регистрация:
    23 янв 2016
    Сообщения:
    1.881
    Симпатии:
    635
    Баллы:
    840
    Типо того)
     
Похожие темы
  1. Otto-Dix
    Ответов:
    0
    Просмотров:
    190
  2. Razox
    Ответов:
    6
    Просмотров:
    242
  3. sealers
    Ответов:
    7
    Просмотров:
    303
  4. Deads
    Ответов:
    3
    Просмотров:
    137
  5. PulseOfDeath
    Ответов:
    0
    Просмотров:
    66
Загрузка...