php - 临时表创建

标签 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} 的作用是什么?

最佳答案

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

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

扩展为:

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

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

关于php - 临时表创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31584899/

相关文章:

php - 根据用户输入更新mysql数据库

php - PDO 准备语句 - NULL

php - 尝试创建自定义日志 channel Laravel 5.6

php - 如果定向到页面,则运行查询

php - 如何在 php 中的字符串中第一次出现数字/数字后检索数据

php - 单个 select 语句中的多个 GROUP_CONCAT

MySQL - 相关子查询失败,where 子句中的列未知

php - 我如何将其转换为 mysqli

php - 无需身份验证即可获取最新的推特状态?

php - Mysql SELECT,查找行数,然后在单个查询语句中插入