我正在调试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}
的作用是什么?
答案 0 :(得分:0)
价值" WR"是查询的别名,而不是临时表。它不会将数据复制到内存中,它只是使查询更短/更容易阅读的快捷方式。这是一个例子:
SELECT * FROM countries c WHERE c.code = "GB"
扩展为:
SELECT * FROM countries WHERE countries.code = "GB"
@machineaddict是正确的,{#table}在MySQL中没有意义 - 它可能会在以后被PHP应用程序的另一部分替换。