ГДЕ id IN не работает в ОБНОВЛЕНИИ - PullRequest
1 голос
/ 01 мая 2010

UPDATE statistics * * 1002 SET money = money + '$money'
WHERE member_id IN
((SELECT member_id FROM races WHERE l_id = '$mem_id'), $other_id)

Что с этим не так? Я хочу получить все member_ids из рас, а также включить в member_id $ other_id. Без $ other_id это работает.

Кстати, это выдает ошибку «Подзапрос возвращает более 1 строки».

Ответы [ 3 ]

7 голосов
/ 01 мая 2010

Попробуйте с:

UPDATE statistics
   SET money = money + $money
 WHERE member_id IN (
       SELECT member_id
         FROM races
        WHERE l_id = $mem_id 
       )
    OR member_id = $other_id

И предложение - для int столбцов типа не используйте апострофы.

4 голосов
/ 01 мая 2010

Еще один способ сделать это:

(SELECT member_id FROM races WHERE l_id = '$mem_id'
UNION
SELECT $other_id)
4 голосов
/ 01 мая 2010

подзапрос возвращает member_id и $ other_id

...