我正在调试 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/