I'm trying to get the domain instead of the full e-mail address in my query for Domain_. In the statement below I select user_data. Email_address
but that provides foo@bar.com instead of bar.com which isn't sufficient:
INSERT INTO user_orders
(`User_ID`, `Order_Number`, `Customer_ID`, `Email_address`, `Domain_`)
SELECT
user_data.`User_ID`, order_data.`Order_Number`, user_data.`Customer_ID`,
user_data.`Email_address`, user_data.`Domain_`
FROM user_data
INNER JOIN order_data ON order_data.User_ID = user_data.User_ID;
My understanding was SUBSTRING_INDEX(Email_address,'@',-1) as Domain_ would work so I tried:
INSERT INTO user_orders
(`User_ID`, `Order_Number`, `Customer_ID`, `Email_address`, `Domain_`)
SELECT
user_data.`User_ID`, order_data.`Order_Number`, user_data.`Customer_ID`, user_data.`Email_address`,
(SUBSTRING_INDEX(SUBSTR(user_data.`Email_address`, INSTR(user_data.`Email_address`, '@') + 1),'.',1)) as user_data.`Domain_`
FROM user_data
INNER JOIN order_data ON order_data.User_ID = user_data.User_ID;
but the query fails and provides a syntax error.
To help isolate it more for clarity this is what I'm doing differently:
(SUBSTRING_INDEX(SUBSTR(user_data.`Email_address`, INSTR(user_data.`Email_address`, '@') + 1),'.',1)) as user_data.`Domain_`
Any help would be appreciated as I'm stuck.
Error: INSERT INTO user_orders(
User_ID
,Order_Number
,Customer_ID
,Email_address
,Domain_
) select user_data.User_ID
, order_data.Order_Number
, user_data.Customer_ID
, user_data.Email_address
, (SUBSTRING_INDEX(SUBSTR(user_data.Email_address
, INSTR(user_data.Email_address
, '@') + 1),'.',1)) as user_data.Domain_
FROM user_data INNER JOIN order_data on order_data.User_ID = user_data.User_ID; /* SQL Error (1064): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '.Domain_
FROM user_data INNER JOIN order_data on order_data.User_ID = user...' at line 2 */```