0
爲什麼以下查詢是有效的選擇?爲什麼在表名有效之後是隨機的String/varchar?
SELECT * from arelation somerandomtext;
的arelation
的內容並不重要,它只是HAST是現有視圖/表。
它返回正確的結果,分別輸出沒有somerandomtext
的選擇。
爲什麼此查詢不會拋出錯誤/異常,是否沒有關鍵字(Group By,limit ...)檢查?
爲什麼以下查詢是有效的選擇?爲什麼在表名有效之後是隨機的String/varchar?
SELECT * from arelation somerandomtext;
的arelation
的內容並不重要,它只是HAST是現有視圖/表。
它返回正確的結果,分別輸出沒有somerandomtext
的選擇。
爲什麼此查詢不會拋出錯誤/異常,是否沒有關鍵字(Group By,limit ...)檢查?
它的別名
即
select c.id, c.*
from products c
是有效的語法,因爲它允許從表連接到自身
即
select c.id, p.id
from products c inner join products p on p.id = c.id
這就是所謂的表的別名,是這是SQL語言的基礎部分 - 例如需要進行自連接。它們在Postgres文檔中描述(http://www.postgresql.org/docs/9.2/static/queries-table-expressions.html)。 –
我總是使用(d)帶有「as」的別名函數,所以我沒有想到這一點。 – Akkusativobjekt
我總是使用'as'作爲列別名,而不使用表別名 - 可能是我生命中早些時候(Oracle不允許''作爲'表別名')的影響。 –