临时表创建

时间:2015-07-23 10:36:30

标签: php mysql

我正在调试php网站,不知道mysql查询是如何工作的。代码是:

$query = "
        SELECT
            WR.*,           
            W.*,
            D.*         
        FROM
            {#table} WR
        LEFT JOIN words W
            ON WR.word_id = W.word_id
        LEFT JOIN words_descriptions WD
            ON W.word_id = WD.word_id
        LEFT JOIN descriptions D
            ON WD.description_id = D.description_id
        " . $user_words_sql . "
        WHERE 
            title_len > 3
            AND W.in_game = 1
            " . $frequency_sql . " 
            " . $type_sql . "   
        GROUP BY 
            WR.word_id, 
            WR.description_id               
        ORDER BY
            $additional_order W.frequency DESC      
    ";

我的问题是创建表WR的地方,是在这段代码中创建的临时表还是在其他地方创建的?另外,这个表达式{#table}的作用是什么?

1 个答案:

答案 0 :(得分:0)

价值" WR"是查询的别名,而不是临时表。它不会将数据复制到内存中,它只是使查询更短/更容易阅读的快捷方式。这是一个例子:

SELECT * FROM countries c WHERE c.code = "GB"

扩展为:

SELECT * FROM countries WHERE countries.code = "GB"

@machineaddict是正确的,{#table}在MySQL中没有意义 - 它可能会在以后被PHP应用程序的另一部分替换。