任何人都可以向我解释这个查询的作用吗?

时间:2010-02-10 20:12:45

标签: mysql

我需要用外行的语言进行反击。

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

我想要更改查询,以便它获取它登录的部门的数据。

1 个答案:

答案 0 :(得分: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等于true,则为空值
  2. 如果pointsweightage为null,则“未设置”值
  3. 如果1和2不适用,则点数的值
  4. 查询已根据$ deptid

    的参数值过滤掉结果