我有一个包含table1 (id, name_id, value)
和table2 (id, name, other)
然后我有一些数据
$name = 'a name';
$value = 'a value';
我想将$name
值用作table2.name
来获取table2.id
并将其作为table1
插入table1.name_id
但我还要插入{ {1}} $value
。
在执行table1
时我可以使用SELECT
,但我JOIN
找到的唯一问题是使用INSERT
查询而不是{{} 1}}
但是,我想使用SELECT
(VALUES
)中的值以及插入table2
,但id
方法似乎只复制一个表中的数据( $value
)到另一个
编辑:伪SQL
SELECT
答案 0 :(得分:2)
这样的事情应该有效(假设PDO,因为你没有指定):
$preparedStmt = $pdo->prepare("INSERT INTO table1 (name_id,value)
SELECT id, :value FROM table2 WHERE name=:name");
$preparedStmt->execute(array('name'=>$name,'value'=>$value));
答案 1 :(得分:1)
insert into table1 (name_id, other)
select id, 'just some static data or data from a variable'
from table2
where name = '$name'
我插入了变量以提高可读性。但我建议改用 Prepared Statements 。