2010-02-10 48 views
1

我需要外行人的語言。任何人都可以向我解釋這個查詢是幹什麼的?

SELECT 
    t1.* 
    , IF(isBranch='true','',IF(pointsweightage IS NULL,'Not Set',pointsweightage)) AS w 
    , t2.id AS wid 
FROM 
    `skills_hierarchy` t1 LEFT JOIN 
    weightage t2 ON t1.pointsweightage=t2.weightage 
WHERE 
    isBranch='false' 
    AND t1.deptid=$deptid 
    AND t2.deptid=$deptid 

我想要更改查詢,以便它獲取我登錄的部門的數據。

+0

請說明「它登錄的部門的數據」。我不明白這意味着什麼。 – 2010-02-10 20:17:21

+2

兩件事:首先,我不確定我是否正確理解代碼下面的行,您可能想要編輯和重新制定。其次,我們應該如何知道如何在不知道您查詢的表的任何內容的情況下更改查詢? – Romain 2010-02-10 20:18:40

+0

by riposte你的意思是解釋,還是迴應,還是別的什麼? – 2010-02-10 20:21:22

回答

1

那麼,我將重新格式化這一點來幫助你,然後我會在下面解釋。

SELECT 
    t1.*, 
    IF(isBranch='true', 
     '', 
     IF(pointsweightage IS NULL, 
      'Not Set', 
      pointsweightage)) AS w, 
    t2.id AS wid 
FROM `skills_hierarchy` t1 
    LEFT JOIN weightage t2 
     ON t1.pointsweightage=t2.weightage 
WHERE isBranch='false' 
    AND t1.deptid=$deptid 
    AND t2.deptid=$deptid 

「選擇」部分爲您提供「skills_hierarchy」表中的所有值,然後是名爲「w」的列的值。這個值將是三件事之一。

  1. 如果isBranch空值等於真
  2. 值「未設置」如果pointsweightage爲空
  3. pointsweightage的價值,如果1和2不適用

查詢已經根據$ deptid的參數值篩選出結果

+0

優秀,這裏的問題是我沒有得到其他部門ID值只是t1.deptid作品....我對查詢有疑問,但現在覺得我的業務邏輯有一些缺陷。 感謝您再次解釋我自己的查詢。 – Kevin 2010-02-10 22:20:24

相關問題