2

我有两个 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 查询合二为一?我需要从第一个请求的第二个查询中获取变量的值。可能吗?

4

3 回答 3

4

这个带有子查询的查询应该可以很好地为您解决问题:

insert into table 2 (`name`, `num`) 
    values ('name', (select `num` from table1 where `user`='user'));

这假设您除了num第二个查询之外没有使用任何东西,因为它似乎没有在您的原始代码中使用。

编辑:另外,我看到这是一个插入,而不仅仅是一个选择语句,但你可能会从阅读我提出的一个相当长的问题和答案中受益,它涵盖了多个表和 SQL,涵盖联合、连接、子查询和一堆更多东西。

于 2012-09-29T22:39:35.490 回答
4

你可以使用 INSERT INTO ... SELECT ... 语法吗?

例如:

INSERT INTO table2 (name, num)
SELECT 'name', num
FROM table1
WHERE user='user' 

(未经测试,所以请原谅这里的任何小错误......)

于 2012-09-29T22:40:34.850 回答
0

废了这个。

最好的答案是让 PHP 拥有 MYSQL 需要的数据。以任何其他方式进行都会导致瓶颈并且效率低下。

于 2012-09-29T22:41:19.180 回答