За последние 24 часа нас посетили 24453 программиста и 1656 роботов. Сейчас ищут 954 программиста ...

SQL запрос на перезапись

Тема в разделе "PHP для новичков", создана пользователем BaranPHP, 15 апр 2014.

  1. BaranPHP

    BaranPHP Новичок

    С нами с:
    24 янв 2014
    Сообщения:
    356
    Симпатии:
    0
    Доброго дня. Пытаюсь понять как выполнить запрос на перезапись значений из строки одной таблицы в другую.
    Имеются две таблицы:
    tabl1 c полями tabl1_id, value1, value2, value3, datetabl1
    tabl2 c полями tabl2_id, value1, value2, value3, datetabl2
    поля "Id" и "date" проставляются автоматически. Мне надо создать строку в таблице tabl2, и перезаписать значения из полей value1, value2, value3 таблицы tabl1, в одноимённые поля таблицы tabl2.
    Помогите с запросом пожалуйста. Поиск в гугле выдаёт мне что надо строить такую конструкцию:
    Код (Text):
    1. INSET INTO table1(a,b,c,d) SELECT a, b, c, d FROM table2
    в итоге у меня вышло
    Код (Text):
    1. INSERT INTO tabl2
    2.    (value1, value2, value3)
    3. SELECT value1, value2, value3
    4. FROM tabl1
    5. WHERE (tabl1_id = 266)
    но хоть запрос и отрабатывает но новая строка во второй таблице не создаётся, пишет (Добавлено 0 строк).

    И так то что выше решено:
    вопрос номер два, исключительно для самообразования возможно ли как то объединить две вот такие записи в одну?
    Запись №1:
    Код (Text):
    1. INSERT INTO tabl2
    2.    (value1, value2, value3)
    3. SELECT value1, value2, value3
    4. FROM tabl1
    5. WHERE (tabl1_id = $peremennajaNr1)
    Запись №2:
    Код (Text):
    1. INSERT INTO tabl2(datetabl2) VALUES ('$peremennajaNr2')
    На данный момент всё работает на первом запросе а поле "date" заполняется автоматом. Просто на будущее хочется уметь объединять.
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    UPDATE надо использовать.
     
  3. BaranPHP

    BaranPHP Новичок

    С нами с:
    24 янв 2014
    Сообщения:
    356
    Симпатии:
    0
    Каким образом? На сколько я понимаю UPDATE меняет уже существующие значения а мне надо:
    Только не бейте ногами я не разбираюсь так хорошо в языке.
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    что вы хотели сказать этим условием WHERE ? проверьте себя без INSERT — будет ли найдена строка.

    приходят на ум и другие возможные причины, но они должны сопровождаться ошибкой, а вы не написали, что выдается какая-то ошибка. выходит дело в том, что вставлять просто нечего.
     
  5. BaranPHP

    BaranPHP Новичок

    С нами с:
    24 янв 2014
    Сообщения:
    356
    Симпатии:
    0
    Ну как бы вот так:
    tabl1
    tabl1_id ="1", value1="пофиг что1", value2="пофиг что1", value3="пофиг что1", datetabl1="какая то дата1"
    tabl1_id ="2", value1="пофиг что2", value2="пофиг что2", value3="пофиг что2", datetabl1="какая то дата2"
    tabl1_id ="3", value1="пофиг что3", value2="пофиг что3", value3="пофиг что3", datetabl1="какая то дата3"
    ........................
    tabl1_id ="266", value1="пофиг что266", value2="пофиг что266", value3="пофиг что266", datetabl1="какая то дата266"


    tabl2
    tabl2_id ="1", value1="пофиг что1", value2="пофиг что1", value3="пофиг что1", datetabl1="какая то дата1"
    tabl2_id ="2", value1="пофиг что2", value2="пофиг что2", value3="пофиг что2", datetabl1="какая то дата2"
    этим SQL запросом я пытаюсь создать:
    tabl2_id ="3", value1="пофиг что266", value2="пофиг что266", value3="пофиг что266", datetabl1="какая то дата3"
    WHERE (tabl1_id = 266) в данном случае указывает (в моём представлении) что надо взять значения из конкретной строки где tabl1_id ="266"

    Добавлено спустя 24 минуты 6 секунд:
    о спасибо нашёл ошибку конструкция рабочая у меня просто не было значения 266 отсюда и ошибка )) как только подставил реально существующие всё заработало.