UPDATE (SELECT T.FIELD A, S.FIELD B
FROM TABLE_T T INNER JOIN TABLE_S S
ON T.ID = S.ID)
SET B = A;
A и B являются псевдонимами, вам не нужно указывать таблицу.
Согласно пересмотру в мае 2008,
Вы правы:
двоичный файл / оператор приводит к частному, и двоичный оператор % приводит к остатку от подразделения первого выражения вторым. Если второй операнд / или % является нулем, поведение не определено; иначе (a/b) *b + a%b равен a. Если оба операнда являются неотрицательными тогда, остаток является неотрицательным; в противном случае знак остатка является реализацией-defined75).
в Примечании 75 говорится:
Согласно работе в стадии реализации к пересмотру ISO C, предпочтительный алгоритм для целочисленного деления следует правилам, определенным в стандарте Фортрана ISO, ISO/IEC 1539:1991, в котором частное всегда округляется к нулю.
Возможности состоят в том, что C++ изолирует C в этом отношении. В настоящий момент это не определено, но они понимают толк к изменению его.
я работаю в том же отделе Stroustrup и с членом комитета. Вещи берут ВОЗРАСТЫ, которые будут выполнены, и его бесконечно политический. Если это кажется глупым, это, вероятно.
Просто комментарий. Текущий рабочий проект для стандарта C++ действительно исправляет "определенную реализацией" проблему и просит усечение по направлению к нулю. Здесь веб-страница комитета, и здесь проект. Проблема на уровне страницы 112.