什麼人會想到這個查詢?表名可以用作別名嗎?
SELECT * FROM ta LEFT JOIN
(SELECT * FROM tb WHERE tb.end > 10000) AS tb
ON ta.id = tb.id
可以使用表名(「tb」)作爲別名還是存在一些看不見的後果?
原因:我有靜態方法來映射的ResultSet對象到其使用的表名前綴。單獨留下這些方法會很好。
什麼人會想到這個查詢?表名可以用作別名嗎?
SELECT * FROM ta LEFT JOIN
(SELECT * FROM tb WHERE tb.end > 10000) AS tb
ON ta.id = tb.id
可以使用表名(「tb」)作爲別名還是存在一些看不見的後果?
原因:我有靜態方法來映射的ResultSet對象到其使用的表名前綴。單獨留下這些方法會很好。
是的,你可以使用任何別名,只要別名不與其他別名衝突(不包括別名表是給他們的名字別名)。這適用於單個查詢範圍。在你的查詢中,你有2個作用域:一個用於外部查詢,另一個用於內部查詢,因此即使在兩個作用域中出現相同的別名,也不應該有衝突。
是這是完全正常使用別名作爲表名。
您的查詢看起來不錯,但你爲什麼不使用一個簡單的LEFT JOIN
SELECT ta.*
FROM ta
LEFT JOIN tb ON ta.id = tb.id
WHERE tb.end > 10000
我上面的查詢未完成, – inmyth
這是蠻好用的。但是'SELECT * FROM tb WHERE tb.end> 10000'是否返回單列? –