Я использую MYSQL, и мои таблицы, как показано ниже. мне нужно обновить speciality_name
поле в таблице specialities
, соответствующее list_of_specialities
в таблице clinics
, но когда я делаю это, как показано ниже
UPDATE clinics c
LEFT
JOIN specialities s
ON s.clinic_id = c.clinic_id
SET s.speciality_name = concat_ws('',c.list_of_specialities,s.speciality_id)
WHERE s.clinic_id = c.clinic_id
моя таблица выглядит так
speciality_id speciality_name clinic_id
6 data 16
, поскольку для других list_of_specialities
нет speciality_id
Я думаю, что я должен вставить другие, но мне нужно, чтобы он был вставлен автоматически, и мне действительно нужно, чтобы таблица выглядела так
speciality_id speciality_name clinic_id
6 data 16
7 data2 16
8 data3 16
9 data4 16
10 asdsads 16
CREATE TABLE IF NOT EXISTS `clinics` (
`clinic_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`clinic_name` varchar(100) DEFAULT NULL,
`location` varchar(500) DEFAULT NULL,
`list_of_specialities` json DEFAULT NULL,
PRIMARY KEY (`clinic_id`)
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `doctors` (
`doctor_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`first_name` varchar(50) DEFAULT NULL,
`last_name` varchar(50) DEFAULT NULL,
`age` int(10) UNSIGNED DEFAULT NULL,
`clinic_id` int(10) UNSIGNED NOT NULL,
`speciality_id` int(10) UNSIGNED NOT NULL,
`user_id` int(10) UNSIGNED NOT NULL,
PRIMARY KEY (`doctor_id`),
KEY `Doctor_FKIndex1` (`clinic_id`),
KEY `Doctor_FKIndex2` (`speciality_id`),
KEY `Doctor_FKIndex3` (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `specialities` (
`speciality_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`speciality_name` varchar(100) DEFAULT NULL,
`clinic_id` int(10) UNSIGNED NOT NULL,
PRIMARY KEY (`speciality_id`),
KEY `Speciality_FKIndex1` (`clinic_id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;