Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.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 在select查询中使用SQL临时表_Mysql_Sql_Database_Inner Join_Temporary - Fatal编程技术网

Mysql 在select查询中使用SQL临时表

Mysql 在select查询中使用SQL临时表,mysql,sql,database,inner-join,temporary,Mysql,Sql,Database,Inner Join,Temporary,我试图创建一个搜索引擎,通过使用两个表中的值来过滤和预执行搜索 我通过内部连接两个表来创建一个临时表。但是,我无法找到从临时表中搜索mysql查询的方法 $search_query = mysql_query("SELECT first_name, last_name, major, location, class_of, campus, avatar, state, country FROM ('SELECT users.first_name, users.last_name, users

我试图创建一个搜索引擎,通过使用两个表中的值来过滤和预执行搜索

我通过内部连接两个表来创建一个临时表。但是,我无法找到从临时表中搜索mysql查询的方法

$search_query = mysql_query("SELECT first_name, last_name, major, location, class_of, campus, avatar, state, country 

FROM ('SELECT users.first_name, users.last_name, users.location, users.country, tags_game.name, tags_interest.name, tags_movie.name FROM users, tags_game, tags_interest, tags_movie WHERE users.id IN (tags_game.relation, tags_interest.relation, tags_movie.relation)')
                somealias

WHERE first_name LIKE '{$first_name}%' && 
    location LIKE '{$location}%' &&     
    state LIKE '{$state}%' &&
    country LIKE '{$country}%' 

然而,这不起作用。如何在其他查询中使用/调用临时表?

子查询需要别名,否则无法工作。这将返回1:

SELECT test from  -- or fully qualified : aliasname.test
  (SELECT 1 as test) aliasname
WHERE test>0
所以我想你需要的是:

mysql_query("SELECT something_1, something_2 . . . FROM
  (SELECT table1.something_1, table2.something_2 . . .) somealias WHERE . . .");

你不能使用这样的子查询。那么我该如何在查询中添加临时表呢?在“SELECT table 1.something\u 1,table 2.something\u 2…”你的意思是这样的:mysql\u querySELECT something\u 1,something\u 2,其中something\u 1='0',something\u 2='0',在'SELECT table 1.something\u 1,table 2.something\u 2…'子选项周围的引号是完全错误的。它必须被选中。。。不是“选择…”我对如何在我的表中使用别名有点困惑,您介意告诉我如何在临时表和查询中使用别名吗?这两个名称看起来如何?在本例中,实际上没有使用别名,但SQL需要它。如果我误解了你想要实现的目标,请说出来,我会删除我的答案,以便其他人可以提供帮助。我只是尝试获取我通过组合两个表创建的临时表,并让查询从该临时表获取数据。你知道怎么让它工作吗?您知道如何使用aliasname使其工作,以便查询能够从该临时表中选择信息吗?一旦您的查询工作完毕,您可以将其放在此处!别名并将其用作外部级别查询的“派生表”。稍后我将编辑我的答案,以显示我从您给出的示例中推测您正在尝试做什么。我尝试过,但最终得到了一个语法错误。我编辑了我的原始帖子,以包含查询和临时表的真实代码,你介意告诉我我做错了什么吗?