我有两个表:images
和servers
。这是与这两个表相关的架构:
id, name, uploaded, views, server_id
id, name, description, drive_space, enabled
在images
表上,server_id
是id
表中servers
字段的外键。非常简单的东西。许多图像属于一台服务器。
当我插入图像时,它 以指向托管图像的服务器的键。当我插入行时,我给出了服务器的名称(不是它的id),所以我不能插入它。我可以通过两个查询实现我想要的(一个用于获取服务器ID,另一个用于将图像插入到数据库中),但理想情况下我希望在一个查询中使用JOIN完成它作为最佳实践。
对于SELECT语句,我对JOINS几乎一无所知,使用INSERT更是如此。任何人都可以帮助我吗?
答案 0 :(得分:2)
无需加入。只需使用INSERT ... SELECT ...:
INSERT INTO images
(name, uploaded, views, server_id)
SELECT 'imagename', CURTIME(), 0, id
FROM servers
WHERE name = 'servername'