ошибка в запросе mysql - внутреннее соединение внутри где - PullRequest
1 голос
/ 26 октября 2011

я получил эту ошибку:

for the right syntax to use near 'INNER JOIN oferta B ON A.oferta_id_oferta = B.id_oferta AND B.oferta = "design' at line 4

я не могу создать внутреннее соединение в предложении where? или существует другая проблема с этим запросом?

UPDATE `oferta_has_tags` A
    SET fraccao = "1/7"
    WHERE (
    INNER JOIN oferta B
    ON A.oferta_id_oferta = B.id_oferta
    AND B.oferta = "designer"
    AND B.estado = 0)

Ответы [ 2 ]

1 голос
/ 26 октября 2011

Запрос неверный.Он должен иметь предложения SELECT и FROM:

Это должно быть что-то вроде этого:

ОБНОВЛЕНИЕ oferta_has_tags A SET fraccao = "1/7" WHERE id = (SELECT id FROMyourtable WHERE что-то = somevalue)

Убедитесь, что подзапрос должен возвращать ровно 1 значение.Если вы хотите обновить несколько записей, используя приведенный выше запрос, замените «=» на «IN».Например:

ОБНОВЛЕНИЕ oferta_has_tags A SET fraccao = "1/7" WHERE ID IN (ВЫБЕРИТЕ ID ИЗ ВАШИХ ГЛАВНЫХ ГДЕ что-то = somevalue)

Надеюсь, это поможет...

1 голос
/ 26 октября 2011

Выразите это как простое IN:

UPDATE oferta_has_tags
SET fraccao = '1/7'
WHERE oferta_id_oferta IN (
    SELECT id_oferta 
    FROM oferta
    WHERE oferta = 'designer'
    AND estado = 0)

Кроме того, двойные кавычки (") заменены на одинарные (') - использование двойных кавычек приведет к ошибке

...