MySQL插入到子查询中(在连接表上)


MySQL insert into with subquery (on a junction table)

基本上,我想插入到一个连接表中,从另一个连接表中获取值。

喜欢这个:

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

但是,这个不起作用,有人知道为什么吗?

您正在混合用于插入一组值的语法和用于从 SELECT 语句插入的语法。从 SELECT 插入时没有 VALUES 关键字。

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