2013-10-02 56 views
1

我正在做一個Web Developer的實習,我有點新,我在這裏請你的經驗來澄清我的疑惑;而我正在一個網站,別人讓我發現這個查詢:不能理解這個MySQL查詢目的

$query = "SELECT a.upload_date, a.zipfile, a.lang, b.* 
      FROM something_uploadform as a , something2_stayinformed as b 
      WHERE a.uid_head =b.uid and a.zipfile<>'' order by ".$orderby." desc"; 

任何人都可以幫助我理解它嗎?我認爲這段代碼會選擇一條記錄並將其附加到a上,不是嗎?

謝謝大家。

+0

爲什麼要附加任何東西?在我看來,就像一個簡單的隱式'JOIN'。 – TheWolf

+0

祝你好運實習。我相信這將是一次寶貴的經歷。 – Kermit

回答

4

在高層次上,此查詢在兩個表上執行隱式JOIN。讓我們來分析一下:

的數據是從兩個表(AS給表的別名)未來:

  • something_uploadform爲「A」(此表將現在稱爲a
  • something2_stayinformed作爲

被選擇的列 「b」(此表現在將被稱爲b):

  • a.upload_date
  • a.zipfile
  • a.lang
  • b.*

這些表被連接在列(在表b所有列):

  • a.uid_head = b.uid

所應用的過濾器:

  • a.zipfile <> ''(其中列zipfile不爲空)

施加的排序:

  • $orderby DESC(傳遞的變量,分類按降序排列)
+0

非常感謝,現在一切都很清楚。 :) –

1

something_uploadform as aa定義爲something_uploadform的別名,因此您在選擇列時不必指定完整的表名稱。