1060 - Duplicate column name '1'

tweaker7
Дата: 10.02.2013 18:14:52
Здравствуйте!
Как можно дореализовать данный запрос:
INSERT INTO `stats` (send_id, user_id) SELECT * FROM(SELECT '1', '1') as tmp WHERE NOT EXISTS(SELECT * FROM `stats` WHERE `send_id`='1') limit 1;


Выдает ошибку:
#1060 - Duplicate column name '1'


Суть проблемы такова:
Нужно не делать INSERT с send_id если уже имеется такая запись за ближайшие прошедшие два дня.
miksoft
Дата: 10.02.2013 21:09:27
INSERT INTO `stats` (send_id, user_id) SELECT '1', '1' FROM dual WHERE NOT EXISTS(SELECT NULL FROM `stats` WHERE `send_id`='1');
Если поля send_id, user_id числового типа, то кавычки у единиц лучше убрать.
Если поле send_id должно быть уникальным, то лучше создать уникальный ключ из него и использовать INSERT IGNORE.
tweaker7
Дата: 11.02.2013 11:48:05
miksoft
INSERT INTO `stats` (send_id, user_id) SELECT '1', '1' FROM dual WHERE NOT EXISTS(SELECT NULL FROM `stats` WHERE `send_id`='1');
Если поля send_id, user_id числового типа, то кавычки у единиц лучше убрать.
Если поле send_id должно быть уникальным, то лучше создать уникальный ключ из него и использовать INSERT IGNORE.



Спасибо большое то что нужно!