基本上,我想插入一个联结表,从另一个表获取值。

像这样:

 $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'

10-07 12:25