2016-01-22 47 views
1

我試圖獲得關於MySQL數據庫的更多知識,我希望有人在這裏也許能向我解釋了以下問題,因爲我找不到太多關於這個特定行爲的任何地方:MySQL子查詢怪癖或預期行爲?

這工作:

SELECT justaname FROM (SELECT productName AS justaname FROM kclbs_products) sdfsdfsd 

雖然這並不:

SELECT justaname FROM (SELECT productName AS justaname FROM kclbs_products) 

這確實謎題是我,我相信這是因爲無論我把字符串「sdfsdfsd」成也沒關係怪癖,查詢仍然有效,即使當它只是一個字符(或者對於這個問題來說是一個非常大的字符序列)。這個「問題」目前對我來說並不是一個問題,但我真的很想知道爲什麼在這個問題背後,爲什麼我可以在將來可能的將來在任何地方處理這種行爲。

在此先感謝。

[更新] 兩位用戶幫助我提供了我的問題的答案,所以解決了它,謝謝!

+1

你爲什麼困惑? – Strawberry

回答

2

它的子查詢名稱

SELECT ... FROM (subquery) [AS] name ... 

這裏是從MySQL文檔
的[AS] name子句是強制性的參考,因爲在每個表FROM子句中必須有一個名字。子查詢選擇列表中的任何列必須具有唯一名稱。

獲得進一步的信息使用https://dev.mysql.com/doc/refman/5.7/en/from-clause-subqueries.html

+0

我將從這裏使用這些文件,感謝您花時間和麻煩指向我。 – DutchRay

+0

隨時歡迎。 – zr9

0

這是不相關的MySQL,它的規則在所有的DBMS。如果在FROM子句中使用子查詢,則必須將其別名。

當您在子查詢(如sdfsdfsd)之後編寫內容時,DBMS將其視爲從子查詢派生的表的別名

你可以看到有關子查詢的一些信息在FROM子句中:

  1. https://dev.mysql.com/doc/refman/5.7/en/from-clause-subqueries.html

  • http://www.geeksengine.com/database/subquery/subquery-in-from-clause.php
  • 它也說明在subquery in FROM must have an alias
  • +0

    是的,非常感謝你,你的幫助表示感謝。 – DutchRay