MySQL Insert,带有一个值的select子查询

MySQL Insert,带有一个值的select子查询,mysql,Mysql,我有一个MySQL insert查询,它需要从另一个表中提取一个数据字段,我想知道这是否可以通过select子查询完成 INSERT INTO resources ( client_account_id, date_time, resource_name, resource_description_id, ) VALUES ( {0}, '{1}', '{2}', {3}, ) 我需要一个select查询

我有一个MySQL insert查询,它需要从另一个表中提取一个数据字段,我想知道这是否可以通过select子查询完成

INSERT INTO resources
(
     client_account_id,
     date_time,
     resource_name,
     resource_description_id,
)
VALUES
(
      {0},
      '{1}',
      '{2}',
      {3},
 )
我需要一个select查询来从另一个表中获取资源描述id

SELECT resource_description_id 
FROM resource_descriptions 
WHERE resource_description = '{0}'
我见过复制整个表的例子,但我不确定当只需要另一个表中的一个字段,而其他字段来自一个表单时,如何做到这一点


谢谢

子查询只需选择所需的值即可。比如:

INSERT INTO resources
(
     resource_description_id
)
(
SELECT resource_description_id 
FROM resource_descriptions 
WHERE resource_description = '{0}'
)
INSERT INTO resources
(
     client_account_id,
     date_time,
     resource_name,
     resource_description_id,
)
SELECT {0}, '{1}','{2}', resource_description_id 
FROM resource_descriptions 
WHERE resource_description = '{3}'

您可以使用select查询的结果进行插入

INSERT INTO resources
(
 client_account_id,
 date_time,
 resource_name,
 resource_description_id
)
SELECT 
  '{0}',
  '{1}',
  '{2}',
  resource_description_id
FROM resource_descriptions 
WHERE resource_description = '{0}'

MySQL不喜欢大多数查询,除非我在子查询周围添加了括号。这是我用过的

INSERT INTO resources
(
 client_account_id,
 date_time,
 resource_name,
 resource_description_id,
)
VALUES
(
  '{0}',
  '{1}',
  '{2}',
  (SELECT resource_description_id 
   FROM resource_descriptions 
   WHERE resource_description = '{0}')
)

这个答案的问题是,如果资源描述不匹配,那么您将一无所获。你试过运行你的回复吗?我有一个表单,用户提交资源名称、描述和关键字,然后我插入到资源表中,我插入到资源描述表中,所以描述总是匹配的。但这让我认为存在重复资源描述的可能性。有没有办法从表中提取最近插入的行?
INSERT INTO resources
(
 client_account_id,
 date_time,
 resource_name,
 resource_description_id,
)
VALUES
(
  '{0}',
  '{1}',
  '{2}',
  (SELECT resource_description_id 
   FROM resource_descriptions 
   WHERE resource_description = '{0}')
)