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

  3. Не знаешь как разобраться с группами на форуме? Тогда тебе сюда Группы на форуме
  4. На форуме работает хайд, где вы можете скрыть информацию от пользователей по определенным критериям Хайд
  5. На форуме работает репутация, где вы можете поблагодарить пользователей. Рассчитывается репутация по индивидуальным критериям Репутация
  6. С списком обновлений можно знакомиться в этой теме Обновления форума

Скрыть объявление

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

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

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

  1. ItCry

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

    Регистрация:
    28 сен 2015
    Сообщения:
    15
    Симпатии:
    3
    Баллы:
    74
    Продублирую тут еще..)
    Всем привет. Нужна помощь тех, кто знает 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.388
    Симпатии:
    497
    Баллы:
    2.319
    Может что-то вроде этого?
    INSERT INTO table1 SELECT * FROM table2
     
  3. ItCry

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

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

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

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

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

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

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

    Регистрация:
    28 сен 2015
    Сообщения:
    15
    Симпатии:
    3
    Баллы:
    74
    да зачем эта структура то?))
    В общем можно закрывать. Если вдруг кому понадобится, то мне помог вот такой запрос, правда у меня 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
    Симпатии:
    3
    Баллы:
    0
    Яб запилил на яве быстрее :D
     
    Psycho нравится это.
  8. Psycho

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

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

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

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

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

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

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

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

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

    Регистрация:
    23 янв 2016
    Сообщения:
    1.388
    Симпатии:
    497
    Баллы:
    2.319
    Типо того)
     
Похожие темы
  1. Holsten
    Ответов:
    2
    Просмотров:
    232
  2. Gregory
    Ответов:
    8
    Просмотров:
    1.587
  3. Otto-Dix
    Ответов:
    0
    Просмотров:
    105
  4. Razox
    Ответов:
    6
    Просмотров:
    156
  5. sealers
    Ответов:
    7
    Просмотров:
    227
Загрузка...