Столбец 'field' в списке полей неоднозначен в mysql - PullRequest
0 голосов
/ 07 июня 2018
INSERT INTO  users (phone, no_of_coupon) 
SELECT couponentries.phone, 1
FROM couponentries LEFT JOIN users ON couponentries.phone = 
users.phone
WHERE users.phone IS NULL
ON DUPLICATE KEY UPDATE users.no_of_coupon = users.no_of_coupon + 1;

Я пытаюсь ввести дату в таблицу couponentries, а затем она автоматически вставит только телефонные номера в таблицу пользователей.Если есть повторяющийся номер телефона, no_of_coupon будет увеличиваться на 1. Но когда я выполнил этот код в триггере phpmyadmin trigger , он имеет ошибку ниже.Может ли кто-нибудь помочь мне, пожалуйста?Спасибо

Не удалось выполнить столбец 'users.no_of_coupon' в списке полей неоднозначно

1 Ответ

0 голосов
/ 07 июня 2018

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

INSERT INTO  users (phone, no_of_coupon) 
SELECT c.phone, 1
FROM couponentries c 
LEFT JOIN users u ON c.phone = u.phone
WHERE u.phone IS NULL
ON DUPLICATE KEY UPDATE users.no_of_coupon = users.no_of_coupon + 1;

Я полагаю, вам не нужна часть соединения, которую вы можете просто использовать

INSERT INTO users (phone) 
SELECT c.phone
FROM couponentries c 
ON DUPLICATE KEY UPDATE no_of_coupon = no_of_coupon + 1;

Демо

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