обновление таблицы MySql за счёт данных другой

Тема в разделе "Базы Данных", создана пользователем Donotlie, 22 апр 2014.

  1. Donotlie

    Donotlie

    Регистрация:
    14 апр 2014
    Сообщения:
    20
    Симпатии:
    0
    Доброго времени суток. Такая проблемка:
    Нужно обновить таблицу данными из другой таблицы. А именно ID

    PHP:
    $sql "SELECT p.* FROM `posts` p, posts_positions pp where `post_status` = 'publish' AND p.ID>pp.positions ORDER BY p.ID ASC LIMIT 1 ";
    $result mysql_query ("UPDATE posts_positions SET positions= 'Тут должен быть id'");


    Но если ставить .$row['ID'] естественно вылезает синтакс ошибка.

    Как быть?? Заранее спасибо =)
     
  2. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.580
    Симпатии:
    1.482
    PHP:
    $sql "SELECT p.* FROM `posts` p, posts_positions pp where `post_status` = 'publish' AND p.ID>pp.positions ORDER BY p.ID ASC LIMIT 1 ";
    какая-то муть в запросе. Оно вообще работает?

    и в UPDATE, таким запросом, вы, обновите абсолютно все записи в таблице.

    Например так:
    PHP:
    SELECT FROM posts AS p
    INNER JOIN posts_positions 
    AS pp ON (pp.post_id p.id)
    WHERE post_status 'publish' AND
    p.id 1
    далее просто вставляется в UPDATE:
    PHP:
    UPDATE posts_positions SET positions $row['id'WHERE positions_id 1;
    p.s. Для более конкретного ответа предоставьте структуру таблиц и что где лежит.
     
  3. Donotlie

    Donotlie

    Регистрация:
    14 апр 2014
    Сообщения:
    20
    Симпатии:
    0
    Безупречно работает.
    В posts_positions находится только одна строка с одним значением positions.

    Работать должно так:
    Из таблицы posts выдаётся одна строка, где в колонке post_status имеется значение publish и ID которого следующее по счёту (тесть большее) того ID, которое записано в таблице posts_positions, в столбце positions

    И мне надо, что бы ID выводимого материала добавлялось в таблицу posts_positions, встолбец positions