插入数据时MySQL JOIN

时间:2012-07-11 20:09:27

标签: mysql sql join insert

我有两个表:imagesservers。这是与这两个表相关的架构:

id, name, uploaded, views, server_id

id, name, description, drive_space, enabled

images表上,server_idid表中servers字段的外键。非常简单的东西。许多图像属于一台服务器。

当我插入图像时,它 以指向托管图像的服务器的键。当我插入行时,我给出了服务器的名称(不是它的id),所以我不能插入它。我可以通过两个查询实现我想要的(一个用于获取服务器ID,另一个用于将图像插入到数据库中),但理想情况下我希望在一个查询中使用JOIN完成它作为最佳实践。

对于SELECT语句,我对JOINS几乎一无所知,使用INSERT更是如此。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

无需加入。只需使用INSERT ... SELECT ...:

INSERT INTO images
(name, uploaded, views, server_id)
SELECT 'imagename', CURTIME(), 0, id
FROM servers
WHERE name = 'servername'