поэтому у меня есть 3 таблицы Sql, я запускаю эту команду
INSERT INTO 'wp_atkv_EWD_OTP_Customers' ('Customer_ID','Customer_Email','Customer_Created')
SELECT
'User_ID',
'Username' ,
'User_Date_Created'
FROM 'wp_atkv_EWD_FEUP_Users'
и он отлично работает. Я хочу добавить данные из другой таблицы, используя один и тот же идентификатор пользователя, но затем я запустил команду ниже, где говорится о дублирующей ошибке? Должен ли я не использовать вставку? также, если я игнорирую дубликат, он просто создает новые записи, я хочу, чтобы все они были в одной строке
INSERT INTO 'wp_atkv_EWD_OTP_Customers' ('Customer_ID','Customer_Name')
SELECT
'User_ID',
group_concat('Field_Value')
FROM 'wp_atkv_EWD_FEUP_User_Fields'
GROUP by 'User_ID'
Что мне делать, как я могу обновить третью таблицу?
Я ожидаю join
:
INSERT INTO wp_atkv_EWD_OTP_Customers (Customer_ID, Customer_Email, Customer_Created, Customer_Name)
SELECT u.User_ID, u.Username, u.User_Date_Created, uf.vals
FROM wp_atkv_EWD_FEUP_Users u LEFT JOIN
(SELECT User_ID, group_concat(Field_Value) as vals
FROM wp_atkv_EWD_FEUP_User_Fields
GROUP by User_ID
) uf
ON u.user_id = uf.user_id;
Кроме того, вам может потребоваться update
:
update wp_atkv_EWD_OTP_Customers c join
(select 'User_ID', group_concat('Field_Value') as vals
from 'wp_atkv_EWD_FEUP_User_Fields'
group by 'User_ID'
) uf
on c.customer_id_id = cf.user_id
set Customer_Name = uf.vals;