表名可以用作别名吗?

时间:2015-04-08 04:59:23

标签: mysql sql

有什么人会想到这个查询?

SELECT * FROM ta LEFT JOIN 
  (SELECT * FROM tb WHERE tb.end > 10000) AS tb 
ON ta.id = tb.id

是否可以使用表名(" tb")作为别名或是否有一些无形的后果?

原因:我有静态方法将ResultSet映射到使用表名前缀的对象。将这些方法单独留下会很好。

3 个答案:

答案 0 :(得分:1)

您的查询看起来不错,但为什么不使用简单的LEFT JOIN

SELECT ta.*
FROM ta
LEFT JOIN tb ON ta.id = tb.id
WHERE tb.end > 10000

答案 1 :(得分:0)

使用别名作为表名是完全正确的。

答案 2 :(得分:0)

是的,您可以使用任何别名,只要别名不与其他别名冲突(没有别名的表会为其名称提供别名)。这适用于单个查询范围。在您的查询中,您有两个范围:一个用于外部查询,另一个用于内部查询,因此即使两个范围中出现相同的别名,也不会发生冲突。