我有一个包含两个子查询的插入查询:
INSERT INTO Work_Order (ID ,BRANCHID,BRANDID)
VALUES (66),
SELECT ID FROM Brands WHERE NAME = 'branch'
SELECT ID FROM Branches WHERE NAME = 'brand'
我知道这不是正确的语法,但我需要正确的语法, ID 必须为 66,并且 BRANCHID、BRANDID 是另一个表的外键
最佳答案
66
是一个文字,在 SELECT
中使用它和两个子选择:
INSERT INTO Work_Order (ID ,BRANCHID,BRANDID)
SELECT
66 AS ID,
(SELECT ID FROM Brands WHERE NAME='branch') AS BRANCHID,
(SELECT ID FROM Brands WHERE NAME='brand') AS BRANDID
MySQL 对于 FROM
子句的存在比较宽松,所以这应该可以工作。许多其他 RDBMS 会要求您在某些表中放入 FROM
子句,即使它没有在 SELECT
中使用(例如 Oracle 的 Dual
表)。
关于SQL插入子查询错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11600197/