У меня есть таблица codes
с полями id, code, issuedto, issuedtime
, которая предварительно заполнена элементами в code
, но в которой много строк с NULL
s в issuedto, issuedtime
. У меня есть другая таблица entrants
, в которой есть поля id, status
.
Я хочу установить codes.issuedto = winners.id
для каждой строки winners
с помощью status = 'won'
.
Проблема в том, что у меня нет ничего, чтобы присоединиться к столам - поэтому я получаю перекрестное соединение, а это совсем не то, чего я хочу. Что я действительно хочу, так это внутреннее соединение - но без чего-либо, к чему можно присоединиться. У кого-нибудь есть идеи?
РЕДАКТИРОВАТЬ: если бы я делал это вне SQL (что мне, возможно, придется сделать?), Псевдокод будет выглядеть примерно так:
rows = query("SELECT id FROM winners WHERE status='won'");
foreach (rows as r) {
query("UPDATE codes SET issusedto=" + r.id + ", issued=NOW() WHERE issuedto IS NULL LIMIT 1");
}