我有两个SQL查询:
$res1 = mysql_query("SELECT * FROM `table1` WHERE `user`='user'");
$i = mysql_fetch_assoc($res1);
$value1 = $i['num'];
和
$res2 = mysql_query("INSERT INTO `table2` (`name`,`num`) VALUE ('name','$value1')");
如何将两个SQL查询合并为一个?我需要从第一个请求的第二个查询中获取变量的值。有可能吗?
答案 0 :(得分:4)
这个带有子查询的查询应该很适合你:
insert into table 2 (`name`, `num`)
values ('name', (select `num` from table1 where `user`='user'));
这假设您没有使用第二个查询中的num
以外的任何内容,因为它似乎没有在您的原始代码中使用。
编辑:另外,我看到这是一个插入,而不仅仅是一个select语句,但是你可能会从阅读一个相当冗长的question and answer中获益,它覆盖了多个表和覆盖联合,连接的SQL ,子查询和更多的东西。
答案 1 :(得分:4)
你能使用INSERT INTO ... SELECT ...语法吗?
E.g。类似的东西:
INSERT INTO table2 (name, num)
SELECT 'name', num
FROM table1
WHERE user='user'
(未经测试,请在此原谅任何小错误......)
答案 2 :(得分:0)
报废。
最好的答案是让PHP拥有MYSQL所需的数据。以任何其他方式执行将导致瓶颈并且效率低下。