在select查询中使用SQL临时表

时间:2014-04-26 18:35:21

标签: 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.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 个答案:

答案 0 :(得分:0)

子查询需要一个别名,否则它将无效。这将返回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 . . .");