(MSaccess to MySQL) FROM 带别名的子查询
(MSaccess to MySQL) FROM subqueries with alias
我在 MS-Access 中有一个 sql 查询,它(当简化为它的基本结构时)运行如下:
SELECT
tableA.id, tableB.id
FROM
(SELECT table.id FROM [table] WHERE (id mod 2 = 0)) AS tableA
INNER JOIN
(SELECT table.id FROM [table] WHERE (id mod 3 = 0)) AS tableB
ON tableA.id = tableB.id
;
对于 A 和 B,returns id 为 6、12 等等。
将脚本改编为 MySQL 时,它无法识别子查询中的别名。我在 MySQL 中找不到平行线,它会是什么?
table
不是 table 名称的好选择。尽管有这个名称,但如果您用反引号代替方括号,您的查询在 MySQL 5.6 中仍然有效。
SELECT
tableA.id, tableB.id
FROM
(SELECT table.id FROM `table` WHERE (id mod 2 = 0)) AS tableA
INNER JOIN
(SELECT table.id FROM `table` WHERE (id mod 3 = 0)) AS tableB
ON tableA.id = tableB.id
;
该版本的查询在 Access 中也应该有效,因为 Access SQL 接受方括号或反引号作为对象名称的分隔符。
我在 MS-Access 中有一个 sql 查询,它(当简化为它的基本结构时)运行如下:
SELECT
tableA.id, tableB.id
FROM
(SELECT table.id FROM [table] WHERE (id mod 2 = 0)) AS tableA
INNER JOIN
(SELECT table.id FROM [table] WHERE (id mod 3 = 0)) AS tableB
ON tableA.id = tableB.id
;
对于 A 和 B,returns id 为 6、12 等等。
将脚本改编为 MySQL 时,它无法识别子查询中的别名。我在 MySQL 中找不到平行线,它会是什么?
table
不是 table 名称的好选择。尽管有这个名称,但如果您用反引号代替方括号,您的查询在 MySQL 5.6 中仍然有效。
SELECT
tableA.id, tableB.id
FROM
(SELECT table.id FROM `table` WHERE (id mod 2 = 0)) AS tableA
INNER JOIN
(SELECT table.id FROM `table` WHERE (id mod 3 = 0)) AS tableB
ON tableA.id = tableB.id
;
该版本的查询在 Access 中也应该有效,因为 Access SQL 接受方括号或反引号作为对象名称的分隔符。