SQL嵌套在INSERT中的SELECT

时间:2016-09-15 11:34:34

标签: mysql sql

我想将SELECT中的值插入表中,但我不知道如何格式化它以便它可以工作。当我单独尝试SELECT语句时,它返回我想要的值,但是当它嵌套时它返回0,它不应该。我尝试将其包装在"" ''中,但它不起作用。

INSERT
INTO
  brand(brand_id,
  NAME,
  cat_id)
VALUES(
  NULL,
  "value",
  (
  SELECT
    cat_id
  FROM
    category
  WHERE
    cat_id = 'number'
)
)

1 个答案:

答案 0 :(得分:1)

只需使用insert . . . select即可。省略values

INSERT INTO brand(brand_id, NAME, cat_id)
  SELECT NULL, 'value', cat_id
  FROM category
  WHERE cat_id = 'number';

三条评论:

  • 如果number确实是一个数字,那就不要使用引号。
  • 这与您的版本略有不同,因为如果没有匹配项,它将不会插入任何行。
  • 如果子查询只返回一行,那么您的版本应该有效。