0

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

id, name, uploaded, views, server_id

id, name, description, drive_space, enabled

images表上,是表中字段server_id的外键。很简单的东西。许多图像属于一台服务器。idservers

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

当涉及到 SELECT 语句时,我对 JOINS 几乎一无所知,对于 INSERT 更是如此。谁能帮我吗?

4

1 回答 1

2

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

INSERT INTO images
(name, uploaded, views, server_id)
SELECT 'imagename', CURTIME(), 0, id
FROM servers
WHERE name = 'servername'
于 2012-07-11T20:15:14.403 回答