SQL插入子查询错误

标签 sql insert subquery

我有一个包含两个子查询的插入查询:

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/

相关文章:

sql - 数据库返回多维结果

MYSQL 循环函数不起作用

sql - 从另一个表更新一个表,但也插入

sql - 仅使用 SQL 的 MySQL INSERT

sql - 在 then of case when 语句中选择子查询?

sql - 通过 SSH 将 SQL DB 备份到 Mac 桌面

php - 将 php 数组插入 mySql

python - 在python中的文件行之间插入文本

.net - 强类型数据集中子查询的计算

mysql - 如何向现有 SQL 语句添加第二个条件?