ФорумРазработкаБазы данных → update (nested select, sum)

update (nested select, sum)

  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 27 апреля 2010 г. 9:07

    feedbacks:
    transaction_id, role # 1 или 2

    transactions
    transaction_id, feedbacks # сумма колонки role для этой transaction_id из верхней таблицы

    UPDATE `tt_transactions_events` AS t SET feedbacks = ( SELECT s
     FROM (
       SELECT f.transaction_id, SUM( `role` ) AS s
       FROM `tt_feedbacks` AS f
       GROUP BY f.transaction_id )
     AS sub_query
     WHERE sub_query.transaction_id = t.transaction_id
    )
    Спустя 29 сек.
    а, да, не работает нихуя. Затронуто 0 рядов
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 27 апреля 2010 г. 9:10, спустя 3 минуты 12 секунд

    Абырвалг, ебаный рот, тебе через inner join тяжело это написать? моск отстрелил мне своим постом. вышлешь моск по почте или мат ожидание за моск суко
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 27 апреля 2010 г. 9:11, спустя 56 секунд

    а как апдейтить с INNER JOIN?
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 27 апреля 2010 г. 9:18, спустя 7 минут 17 секунд

    UPDATE `m2e_transactions_events` AS t
    INNER JOIN (SELECT f.transaction_id, SUM(`role`) AS s FROM `m2e_feedbacks` AS f GROUP BY f.transaction_id) sq ON sq.transaction_id=t.transaction_id
    SET feedbacks=s

    тоже по нулям
    Спустя 78 сек.
    UPDATE `m2e_transactions_events`
    INNER JOIN (SELECT f.transaction_id, SUM(`role`) AS s FROM `m2e_feedbacks` AS f GROUP BY f.transaction_id) AS sq USING(transaction_id)
    SET feedbacks=s


    опять зеро
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 27 апреля 2010 г. 9:19, спустя 57 секунд

    о я ебу…
    adw/0
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 27 апреля 2010 г. 9:22, спустя 2 минуты 32 секунды

    хорошо, нахуй мои запросы, как бы вы написали этот апдейт ( в 1 посте написано что нужно сделать)?
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 27 апреля 2010 г. 9:24, спустя 1 минуту 50 секунд

    Что выдает

    SELECT f.transaction_id, SUM(`role`) AS s FROM `m2e_feedbacks` AS f GROUP BY f.transaction_id

    ?

    Что выдает:

    SELECT t.transaction_id
    FROM `m2e_transactions_events` AS t
    INNER JOIN (SELECT f.transaction_id, SUM(`role`) AS s FROM `m2e_feedbacks` AS f GROUP BY f.transaction_id) AS sq ON sq.transaction_id = t.transaction_id

    ?
    adw/0
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 27 апреля 2010 г. 9:26, спустя 1 минуту 54 секунды

    1) корректная таблица
    transaction_id|сумма

    2) 0 строк
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 27 апреля 2010 г. 9:31, спустя 5 минут 46 секунд

    ага, по ходу мои запросы корректны, просто transactions_id из одной таблицы не совпадают с transaction_id из другой
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 27 апреля 2010 г. 9:36, спустя 4 минуты 43 секунды

    ага
    Спустя 34 сек.
    Вообще иды транз должны быть уникальны, как мне кажется, а у тебя это не так… Ну это уже к архитектуре вопрос
    adw/0
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 27 апреля 2010 г. 11:15, спустя 1 час 38 минут 43 секунды

    я вам больше скажу: самый самый первый запрос, который я написал оказался рабочим

    UPDATE `$tableTransactions` AS t SET feedbacks=(SELECT SUM(`role`) FROM `$tableFeedbacks` AS f WHERE f.transaction_id=t.transaction_id GROUP BY f.transaction_id)


    но из-за того, что транзакции не совпадали ничего не обновилось. Это меня смутило и я начал его переписывать.
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 27 апреля 2010 г. 11:21, спустя 6 минут 5 секунд

    Он рабочий, но уродливый
    adw/0

Пожалуйста, авторизуйтесь, чтобы написать комментарий!