MySQL обновление с объединением и подсчетом - PullRequest
0 голосов
/ 09 сентября 2011

У меня возникла проблема с этим запросом.

update table1 as a
left join  (
select count(*) as 'rec' from table2 group by isin having rec<100 )
table2 as h on a.isin=h.isin 
set a.nohist='1' 

Я хотел бы посчитать строки для каждой группы, спросить, меньше ли их количество, чем 100, установить флаг в таблице 1.

Я всегда получаю сообщение об ошибке:

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'as h on a.isin=h.isin set a.nohist='1'' at line 4

Не могли бы вы мне помочь?

thx br

Ответы [ 3 ]

0 голосов
/ 09 сентября 2011
update table1 as a
left join  (
select count(*) as 'rec' from table2 group by isin having rec<100 )
-- here you have that error

проверьте этот документ http://dev.mysql.com/doc/refman/5.0/en/join.html

Но почему вы хотите выполнить объединение, если вы обновляете table1?Что ты хочешь делать?

0 голосов
/ 09 сентября 2011

Но зачем вам выполнять объединение, если вы обновляете table1?Что вы хотите сделать?

я бы установил флаг для table1 (a.nohist), где в table2 меньше 100 строк на isin (ключ в обеих таблицах).

есть ли причина без объединения?

suunto

0 голосов
/ 09 сентября 2011

Вы устанавливаете псевдоним для результата подвыбора равным table2, а затем вы "реалии", которые table2 до h.Кроме того, вы пытаетесь объединить таблицы h и a с помощью isin.

. Вы должны выбрать isin внутри подвыбора, если хотите иметь возможность объединиться с этой таблицей с помощьюдругие две таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...