我們可以爲單個表使用多個別名嗎?表的多個別名
表的多個別名
回答
是的。你需要F你有一個表,用於存儲層次結構來做到這一點的self join,例如:
create table Foo (
FooID int
,ParentFooID int
,[columns]
)
你可以做一個加入以獲得符合特定條件與像查詢父母的孩子:
Select b.*
from Foo a
join Foo b
on a.FooID = b.ParentFooID
and [some condition filtering a]
+1推理的權力! – 2010-07-16 10:38:34
但它會影響性能與否? – 2010-07-16 10:45:07
查詢優化器必須做任何必要的操作來解析連接謂詞。例如,如果表很大並且在ParentFooID上有一個索引,它可能必須執行索引查找來解析FooID - ParentFooID連接。做比賽總是會涉及一些資源。 – ConcernedOfTunbridgeWells 2010-07-16 10:49:17
不,不在同一張桌子上,但可以選擇同一張桌子兩次並給每個別名。
SELECT alias1.*, alias2.*
FROM mytable alias1, mytable alias2
這將允許您在單個查詢中使用同一張表作爲其他用途。
但它會影響性能與否? – 2010-07-16 10:46:57
是的,如果您選擇兩次表格,那麼它將不得不做兩倍的工作。性能將取決於它們的使用方式,它們連接的內容以及查詢優化器可用的索引和統計信息。 – 2010-07-16 10:57:41
由於Chris的查詢沒有連接條件(隱式或顯式),所以笛卡爾連接會被期望 - 即。表中的每一行都將與同一表中的所有行鏈接,因此如果表中有20行,結果集將爲400行!這比工作的兩倍還要糟糕。然而,這不是造成這項工作的別名 - 而是笛卡爾連接。 – 2010-07-16 11:57:32
- 1. Sybase表的多個別名?
- 2. 多個別名
- 3. 使用多個表的SQL別名
- 4. 多個子帶表和列的別名
- 5. 多個表OR子句和別名
- 6. SQL使用別名連接多個表
- 7. 與連接表和多個別名的多對多關聯
- 8. 調用多個Bash別名
- 9. HTML多個Javascript別名
- 10. 帶有Eloquent ORM的單個表列的多個別名
- 11. 在同一行別名多個名稱
- 12. iTextSharp的 - )名單中的多個級別(
- 13. 加入2個別名錶
- 14. 谷歌分析的多個域別名
- 15. TSQL - CASE WHEN語句的多個別名
- 16. bash中的多個命令別名
- 17. 多個查詢具有別名的Mysql
- 18. git別名中的多個git配置
- 19. 多個命令的Unix別名參數
- 20. 多個Nginx別名到一個位置
- 21. 在Postgresql中選擇具有別名和組別別名的多個列
- 22. 選擇沒有AS的多個表(別名)?
- 23. MySQL的多個別名地加入反對加入表
- 24. 一個站點的多個域名:別名還是重定向?
- 25. VBA圖表多個類別
- 26. bash_profile多行別名
- 27. ActiveRecord表別名
- 28. SQL表別名
- 29. MySQL表別名
- 30. 別名表情
爲什麼你想要?你有一個不起作用的特定查詢嗎? – 2010-07-16 10:36:48
你需要什麼? – 2010-07-16 10:37:48
自我加入或生活在多個角色中的表格。後者的一個例子可能是一個日期維度表,它連接到一個事實表上,其中有幾個日期。 – ConcernedOfTunbridgeWells 2010-07-16 10:46:03