我需要用外行的语言来还击。

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

我希望更改查询,以便它能获取登录部门的数据。

最佳答案

好吧,我会重新格式化这个来帮助你,然后我会在下面解释。

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

“Select”部分从“skills_hierarchy”表中获取所有值,然后是名为“w”的列的值。这个值将是三件事之一。
如果isBranch等于true,则为空值
如果pointsweightage为空,则为值“Not Set”
如果1和2不适用,则pointsweightage的值
查询已根据$deptid的参数值筛选出结果

关于mysql - 谁能向我解释此查询的作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2240013/

10-10 17:39