简体   繁体   English

MySQL 插入子查询(在联结表上)

[英]MySQL insert into with subquery (on a junction table)

Basically, I'd like to insert into a junction table, getting values from another one.基本上,我想插入一个联结表,从另一个表中获取值。

Like this:像这样:

 $sql= "INSERT INTO cars_owners (car_id, owner_id ) VALUES ($id, SELECT owners.owner_id FROM owners WHERE owners.owner_name='$name'))";

However, this one does not work, anyone know why?但是,这个不起作用,有人知道为什么吗?

You're mixing the syntax for inserting a set of values with the syntax for inserting from a SELECT statement.您将插入一组值的语法与从 SELECT 语句插入的语法混合在一起。 There is no VALUES keyword when inserting from a SELECT.从 SELECT 插入时没有VALUES关键字。

INSERT INTO cars_owners 
    (car_id, owner_id )
    SELECT $id, owners.owner_id 
        FROM owners 
        WHERE owners.owner_name='$name'

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM