在INSERT INTO查询中使用多个SELECT

时间:2014-03-05 14:19:40

标签: mysql sql

我试图在查询中插入一些带有多个选择的值,但是在where子句错误中给出了我未知的列'rate'

   INSERT INTO oc_tax_rule (tax_class_id, tax_rate_id, based, priority)
    VALUES (
    (SELECT tax_class_id FROM oc_tax_class WHERE title LIKE '%0%'),
    (SELECT tax_rate_id FROM oc_tax_rate WHERE rate ='0'),
    'store', 1)

1 个答案:

答案 0 :(得分:1)

你可能正在寻找这个:

INSERT INTO oc_tax_rule (tax_class_id, tax_rate_id, based, priority)
SELECT
  (SELECT tax_class_id FROM oc_tax_class WHERE title LIKE '%0%' LIMIT 1),
  (SELECT tax_rate_id FROM oc_tax_rate WHERE rate ='0' LIMIT 1),
  'store',
  1

select query将只返回一行,第一列和第二列是两个select查询的结果 - 您可能需要添加LIMIT 1以确保只返回一行