有什么人会想到这个查询?
SELECT * FROM ta LEFT JOIN
(SELECT * FROM tb WHERE tb.end > 10000) AS tb
ON ta.id = tb.id
是否可以使用表名(" tb")作为别名或是否有一些无形的后果?
原因:我有静态方法将ResultSet映射到使用表名前缀的对象。将这些方法单独留下会很好。
答案 0 :(得分:1)
您的查询看起来不错,但为什么不使用简单的LEFT JOIN
SELECT ta.*
FROM ta
LEFT JOIN tb ON ta.id = tb.id
WHERE tb.end > 10000
答案 1 :(得分:0)
是使用别名作为表名是完全正确的。
答案 2 :(得分:0)
是的,您可以使用任何别名,只要别名不与其他别名冲突(没有别名的表会为其名称提供别名)。这适用于单个查询范围。在您的查询中,您有两个范围:一个用于外部查询,另一个用于内部查询,因此即使两个范围中出现相同的别名,也不会发生冲突。