Задавайте вопросы, мы ответим
Вы не зашли.
Помогите сделать из 3 запросов 1
SELECT characters.charid FROM `characters` WHERE characters.level < 20;
SELECT MAX(`object_id`)+1 FROM `items`;
INSERT INTO `items` SET `owner_id`= (запрос1),`object_id`= (запрос2),`item_id`='111',`count`='1',`enchant_level`='0',`loc`='INVENTORY';
в 1 значении выводится много значений
надо вставить 1 и 2 запросы в 3 .....
Неактивен
Используйте оператор IN вместо =.
Неактивен
Так
INSERT INTO `items` SET `owner_id` in (SELECT characters.charid FROM characters WHERE characters.level < 20) ,`object_id` in (SELECT MAX(`object_id`)+1 FROM `items`),`item_id`='111',`count`='1',`enchant_level`='0',`loc`='INVENTORY';
Пишет
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 'in (SELECT characters.charid FROM characters WHERE characters.level < 20) ,`obje' at line 1
Так
INSERT INTO `items` SET `owner_id` = (SELECT characters.charid FROM characters WHERE characters.level < 20) ,`object_id` = '7668',`item_id`='111',`count`='1',`enchant_level`='0',`loc`='INVENTORY';
Пишет
1242 - Subquery returns more than 1 row
Так
INSERT INTO `items` SET `owner_id` = (SELECT characters.charid FROM characters WHERE characters.level < 20) ,`object_id` = (SELECT MAX(`object_id`)+1 FROM `items`),`item_id`='111',`count`='1',`enchant_level`='0',`loc`='INVENTORY';
Пишет
1093 - You can't specify target table 'items' for update in FROM clause
Помогите пожалуйста....
Неактивен
Брр, мне показалось, что у Вас там SELECT
Тогда никак, на каждую строку исходных данных Вам нужно делать отдельную строку
в INSERT. Самое близкое, что можно сделать, — использовать синтаксис INSERT … SELECT:
INSERT INTO items
SELECT NULL, 111, 1, 0, 'INVENTORY', charid
FROM characters WHERE level < 20;
Порядок полей должен быть правильным, NULL должен приходиться на поле object_id, на
котором нужно прописать флаг AUTO_INCREMENT.
Неактивен