2013-10-12 67 views
0

我在SQL上很差,當我在下面得到一個SQL查詢時,我很困惑其中的ab。他們在查詢中的角色是什麼以及它的功能或結果是什麼?瞭解複雜的SQL查詢

SELECT *,(SELECT COUNT(id) FROM abc_menu b WHERE b.parentId=a.id) FROM abc_menu a ORDER BY ordering ASC 
+2

他們是別名。也許閱讀一個基本的教程... –

+4

你還沒有看到複雜的SQL語句 –

+2

複雜的SQL查詢在哪裏? –

回答

1

ab是別名 - 在SQL中,這些表名後立即宣佈(在FROM或JOIN子句)或柱後/或選擇表達。

SELECT *, (
    SELECT COUNT(id) FROM abc_menu b WHERE b.parentId=a.id) 
FROM abc_menu a 
ORDER BY ordering ASC 

在這裏你可以看到爲a「最外」訪問表的別名(此語句中命名)。

這使得它與子查詢區分開來,將其與子查詢區分開來,它將引用同一個表,分別表示爲b

b引用的行在邏輯上獨立於a引用的行,並且僅在邏輯上指定時才連接 - 在此處由子查詢WHERE子句b.parentId=a.id進行連接。