I have the following tables in my MySQL database:
CREATE TABLE user_role (
user_role_id INT UNSIGNED AUTO_INCREMENT,
user_role VARCHAR(15) NOT NULL,
CONSTRAINT pk_user_role PRIMARY KEY (user_role_id)
);
CREATE TABLE users (
user_id INT UNSIGNED AUTO_INCREMENT,
user_role_id INT UNSIGNED NOT NULL,
email VARCHAR(254) NOT NULL,
password VARCHAR(255) NOT NULL,
CONSTRAINT pk_users PRIMARY KEY (user_id),
CONSTRAINT fk1_users FOREIGN KEY (user_role_id) REFERENCES user_role (user_role_id),
CONSTRAINT unq1_users UNIQUE (email)
);
Assuming all the user roles already exist, how can I insert a new user with the proper user role id (i.e. SELECT user_role_id WHERE user_role = 'role';
) all in one statement?
I have tried the answer in the following question but that didn't work for me: INSERT INTO with SubQuery MySQL