加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql – 在查询中使用联接时出错

发布时间:2020-12-11 23:43:32 所属栏目:MySql教程 来源:网络整理
导读:我有这个问题: SELECT * FROM `employee_activities` aLEFT JOIN `activity` b ON a.activity_code = b.codeLEFT JOIN `employees` c ON a.employee_code = c.codeWHERE b.type = "Design"AND c.code NOT IN( SELECT * FROM `employee_activities` a LEFT J

我有这个问题:

SELECT * FROM `employee_activities` a
LEFT JOIN `activity` b ON a.activity_code = b.code
LEFT JOIN `employees` c ON a.employee_code = c.code
WHERE b.type = "Design"
AND c.code NOT IN(
    SELECT * FROM `employee_activities` a
        LEFT JOIN `activity` b ON a.activity_code = b.code
        LEFT JOIN `employees` c ON a.employee_code = c.code
        WHERE b.type = "Testing"
)
GROUP BY c.code

我收到此错误:

#1241 - Operand should contain 1 column(s)

我想要让所有至少有一个类型为“设计”活动且没有活动类型为“测试”的员工.

我有一个有效的查询但我希望它可以使用连接.

这有效:

SELECT c.name FROM `employee_activities` a,`activity` b,`employees` c
WHERE a.activity_code = b.code
AND a.employee_code = c.code
AND b.type = "Design"

AND c.code NOT IN(
    SELECT c.code FROM `employee_activities` a,`employees` c
        WHERE a.activity_code = b.code
        AND a.employee_code = c.code
        AND b.type = "Testing"
)
GROUP BY c.code

我在连接的sql上做错了什么? 最佳答案 对于不在子查询中 – 它应该只包含一列 – 例如

SELECT * FROM `employee_activities` a
LEFT JOIN `activity` b ON a.activity_code = b.code
LEFT JOIN `employees` c ON a.employee_code = c.code
WHERE b.type = "Design"
AND c.code NOT IN(
    SELECT b.employee_code FROM `employee_activities` a
        LEFT JOIN `activity` b ON a.activity_code = b.code
        LEFT JOIN `employees` c ON a.employee_code = c.code
        WHERE b.type = "Testing"
)
GROUP BY c.code

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读