Я застрял с моей проблемой.После просмотра в Интернете и ТАК я не нашел решение.Вы моя последняя надежда :) Вот проблема:
У меня есть три таблицы:
table_tmp
id | name | val | owner |
------------------------
5 | abc | 100 | 3
6 | cde | 200 | 4
table_ready
id | special_number | id_tmp | name_tmp | val_tmp | owner_tmp |
---------------------------------------------------------------
1 | 0 | 1 | xyz | 100 | 3 |
2 | 0 | 2 | zzz | 100 | 4 |
3 | 1 | 3 | kkk | 200 | 3 |
4 | 2 | 4 | uuu | 130 | 3 |
Теперь яхочу скопировать всю строку с owner = 3 из table_tmp в table_ready.Это легко - я делаю это с помощью:
INSERT INTO table_ready SELECT '', '', t.* FROM table_tmp t WHERE owner = 3;
Но я хочу, чтобы этот запрос подсчитывал также все строки из table_ready, которые имеют owner_tmp = 3 и val_tmp = 100. Поэтому после запроса table_ready будет выглядеть так:
id | special_number | id_tmp | name_tmp | val_tmp | owner_tmp |
---------------------------------------------------------------
1 | 0 | 1 | xyz | 100 | 3 |
2 | 0 | 2 | zzz | 100 | 4 |
3 | 1 | 3 | kkk | 100 | 3 |
4 | 2 | 4 | uuu | 130 | 3 |
5 | 3 | 5 | abc | 100 | 3 |
Что случилось?значения из table_tmp (name, val и owner) отправляются в table_ready (name_tmp, val_tmp, owner_tmp), идентификатор автоматически увеличивается, а специальный номер является результатом запроса:
SELECT count(id) FROM table_ready WHERE owner_tmp = 3 AND val_tmp = 100.
Как объединить эти запросы в один?
К счастью после написания этого поста, я пошел побрить бороду, приготовить чай и нашел решение.Мне не нужно присоединяться к этим запросам вообще.Если у кого-то есть решение вопроса выше, не стесняйтесь написать его - я был бы рад улучшить свои навыки.Извините за беспокойство:)