是否可以使用select内部联接将insert的参数作为值插入到中



我正在尝试创建一个对我来说似乎是边界的查询。简单地说,我有4个表,我想在其中一个表中插入一个,从其他3个表中获取一部分数据,并将插入的数据动态获取,然后作为value ("data time")。这是我到目前为止所做的,但它在最后一行中给了我一个错误

INSERT INTO prenotazioni(`idMateria`,`idDocente`,`idUtente`,`data`)
SELECT corsi.id, docenti.id, utenti.id
FROM (((prenotazioni
INNER JOIN corsi ON prenotazioni.idMateria = corsi.id)
INNER JOIN docenti ON prenotazioni.idDocente = docenti.id)
INNER JOIN utenti ON prenotazioni.idUtente = utenti.id)
WHERE corsi.materia = 'italiano' && docenti.nome = 'Mimmo' && utenti.id = 4
VALUES ('2022-24-5 16:00:00')

只需将日期时间文字添加到选择列表的末尾:

INSERT INTO prenotazioni (idMateria, idDocente, idUtente, data)
SELECT c.id, d.id, u.id, '2022-24-5 16:00:00'
FROM prenotazioni p
INNER JOIN corsi c ON p.idMateria = c.id
INNER JOIN docenti d ON p.idDocente = d.id
INNER JOIN utenti u ON p.idUtente = u.id
WHERE c.materia = 'italiano' && d.nome = 'Mimmo' && u.id = 4;

请注意,为了提高可读性,我还引入了表别名(即表的昵称(。

最新更新