Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 将表中的数据插入临时表,然后从临时表的特定行中进行选择_Mysql_Sql_Temp Tables - Fatal编程技术网

Mysql 将表中的数据插入临时表,然后从临时表的特定行中进行选择

Mysql 将表中的数据插入临时表,然后从临时表的特定行中进行选择,mysql,sql,temp-tables,Mysql,Sql,Temp Tables,我试图从一个现有的表(按列:p\u id,e\u id,ts,data1,data2,data3)中获取行到一个临时表(按p\u id,e\u id,ts)索引),然后从该临时表中选择特定行作为结果。然后终止临时表(因为创建临时表就是这样做的,对吗?) 我审查了这两个员额: 并且对正确编写查询感到困惑(我的查询没有运行) 看起来您只需要删除第一组(),并在语句之间添加分号 看起来您只需要删除第一组(),并在语句之间添加分号 如果以后不打算使用临时表,为什么需要临时表 下一个就不行了 SE

我试图从一个现有的表(按列:
p\u id
e\u id
ts
data1
data2
data3
)中获取行到一个临时表(按
p\u id
e\u id
ts
)索引),然后从该临时表中选择特定行作为结果。然后终止临时表(因为创建临时表就是这样做的,对吗?)

我审查了这两个员额:

并且对正确编写查询感到困惑(我的查询没有运行)

看起来您只需要删除第一组(),并在语句之间添加分号


看起来您只需要删除第一组(),并在语句之间添加分号

如果以后不打算使用临时表,为什么需要临时表

下一个就不行了

SELECT p_id, e_id, ts, data1, data2, data3 FROM processes_history WHERE e_id=4362 AND p_id IN (11,22,33,44,55,66,77,88,99) AND ts BETWEEN '2017-03-01' AND '2017-04-01';

如果我遗漏了什么,请纠正我。如果你以后不打算使用它,为什么需要临时表

下一个就不行了

SELECT p_id, e_id, ts, data1, data2, data3 FROM processes_history WHERE e_id=4362 AND p_id IN (11,22,33,44,55,66,77,88,99) AND ts BETWEEN '2017-03-01' AND '2017-04-01';

如果我遗漏了什么,请纠正我。

您可以使用下面的查询,它将在表中给出愿望:

CREATE TEMPORARY TABLE IF NOT EXISTS pet_temp (INDEX(p_id, e_id, ts))
SELECT p_id, e_id, ts, data1, data2, data3
FROM (
    SELECT p_id, e_id, ts, data1, data2, data3 
    FROM processes_history   
    WHERE e_id=4362 AND ts BETWEEN '2017-03-01' AND '2017-04-01'
) x
WHERE p_id IN (11,22,33,44,55,66,77,88,99);
SELECT * FROM pet_temp;

不需要删除pet_temp表,它将在会话关闭时自动删除。

您可以使用以下查询,它将在表中给出愿望:

CREATE TEMPORARY TABLE IF NOT EXISTS pet_temp (INDEX(p_id, e_id, ts))
SELECT p_id, e_id, ts, data1, data2, data3
FROM (
    SELECT p_id, e_id, ts, data1, data2, data3 
    FROM processes_history   
    WHERE e_id=4362 AND ts BETWEEN '2017-03-01' AND '2017-04-01'
) x
WHERE p_id IN (11,22,33,44,55,66,77,88,99);
SELECT * FROM pet_temp;

不需要删除临时表,它将在会话关闭时自动删除。

这是有效的!有没有办法命名“pet_temp”中的列?将数据提取为关联数组将导致空值<代码>while($row=db_fetch\u assoc($query)){$new[$row['p_id']]=$row['e_id'];这很有效!有没有办法命名“pet_temp”中的列?将数据作为关联数组获取结果为空。
而($row=db_fetch\u assoc($query)){$new[$row['p_id']]=$row['e_id']=$row['e_id'];
CREATE TEMPORARY TABLE IF NOT EXISTS pet_temp (INDEX(p_id, e_id, ts))
SELECT p_id, e_id, ts, data1, data2, data3
FROM (
    SELECT p_id, e_id, ts, data1, data2, data3 
    FROM processes_history   
    WHERE e_id=4362 AND ts BETWEEN '2017-03-01' AND '2017-04-01'
) x
WHERE p_id IN (11,22,33,44,55,66,77,88,99);
SELECT * FROM pet_temp;