MySQL查询从id的不同列获取记录

实际的

以下是我的表结构的详细信息。

表结构“部门”:

id  |   department
1   |   Department 1
2   |   Department 2
3   |   Department 3
4   |   Department 4

表结构“ custom_forms_departments”:

id  |   form_id | department_id | enduser_to_department | department_to_enduser
1   |   5       |   1           |       Y               |       N
2   |   6       |   1           |       N               |       Y
3   |   8       |   2           |       Y               |       Y
4   |   7       |   3           |       N               |       Y
5   |   4       |   3           |       Y               |       N
6   |   2       |   4           |       N               |       N

结果应该是返回的Department_id,在同一行或不同行中,字段“ enduser_to_department”和“ department_to_enduser”的值为“ Y”。

department_id = 1在不同行中的“ enduser_to_department”和“ department_to_enduser”的连续值“ Y”对于同一行中“ enduser_to_department”和“ department_to_enduser”的连续值“ Y”在“ enduser_to_department”中的连续值“ Y”和“ department_to_enduser”在不同的行中

结果:

  department_id | departments
    1           |   Department 1
    2           |   Department 2
    3           |   Deapartment 3

我正在使用以下SQL查询,但未给出正确的结果。

SELECT departments.department_id, departments.department 
FROM custom_forms_departments , departments
WHERE departments.department_id = custom_forms_departments.department_id
AND (custom_forms_departments.enduser_to_department = 'Y'
OR  custom_forms_departments.department_to_enduser = 'Y')
GROUP BY departments.department_id 
ORDER BY departments.department_id DESC

请为我推荐这个。

船长紧缩

首先尝试照顾custom_forms_departments

方式:创建2个副本custom_forms_departments(c1和c2)。您将希望基于(c1.department_id = c2.department_id)-simple和(c1.enduser_to_department = c2.department_to_enduser)-来联接它们,因为您只想获得其中都带有'Y'的行(将在WHEN中过滤'Y',但是现在,您将获得两列中具有相同值的任何行)。其次,使用WHEN仅过滤“ Y”。

SELECT 
    custom_forms_departments.department_id
FROM
    custom_forms_departments c1
        INNER JOIN
    custom_forms_departments c2 ON c1.department_id = c2.department_id
        AND c1.enduser_to_department = c2.department_to_enduser
WHERE
    c1.enduser_to_department = 'Y'
GROUP BY
    c1.department_id 
;

现在,我们有了“复杂”人员,让我们将所有人员聚集在一起并添加departments列:

SELECT 
    departments.department_id, departments.department
FROM
    departments
        INNER JOIN
    (SELECT 
        custom_forms_departments.department_id
    FROM
        custom_forms_departments c1
    INNER JOIN custom_forms_departments c2 ON c1.department_id = c2.department_id
        AND c1.enduser_to_department = c2.department_to_enduser
    WHERE
        c1.enduser_to_department = 'Y'
    GROUP BY
        c1.department_id) c3 ON departments.department_id = c3.department_id
;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MySQL查询以查找列中的不同值并获取总和

来自分类Dev

SQL查询以获取最高记录为2列的顶部记录

来自分类Dev

sql查询以选择两列中具有相同id但不同值的记录

来自分类Dev

MySQL查询获取列的总和

来自分类Dev

如何获取最新记录或在mysql的列中具有所有不同值的最大对应日期的记录?

来自分类Dev

如果两个条件在子记录的不同行上匹配,则高级MySQL查询可获取主记录

来自分类Dev

如何在MYSQL中为单个ID计算同一列中记录的不同值

来自分类Dev

在单个MySQL查询中获取所有列的不同计数

来自分类Dev

获取列的每个不同值的最新记录

来自分类Dev

Mongo Db查询以获取不同的记录

来自分类Dev

高级MySQL查询可获取具有相同ID和不同子ID的最新记录的范围

来自分类Dev

如何在mysql中查询不同的记录

来自分类Dev

sql查询以选择两列中具有相同id但不同值的记录

来自分类Dev

查询以获取每个唯一列ID的3条记录

来自分类Dev

MySQL查询以获取结果集中的记录

来自分类Dev

查询以获取总和和不同的MySQL

来自分类Dev

如何从活动记录查询中获取列

来自分类Dev

MySQL查询以获取ID包含在VBA数组中的记录

来自分类Dev

雄辩的查询构建复杂的查询,以获取在同一表的2个不同列中搜索ID的唯一记录

来自分类Dev

查询以获取不同列的数据

来自分类Dev

如何执行MySQL查询以获取来自不同订阅的所有行(按ID排序)?

来自分类Dev

计算不同列中的记录(MySQL / php)

来自分类Dev

如何在MYSQL中为单个ID计算同一列中记录的不同值

来自分类Dev

mysql在多个记录的选择查询中通过ID获取名称

来自分类Dev

使用Oracle查询以从不同的列值检索不同的记录

来自分类Dev

Codeigniter MySQL:插入记录与用户ID不同

来自分类Dev

单个查询从具有不同列的多个表中获取记录

来自分类Dev

从 MySQL 获取数据,不同查询的问题

来自分类Dev

有没有办法使用不同的 ID 别名来获取 MySQL 记录

Related 相关文章

  1. 1

    MySQL查询以查找列中的不同值并获取总和

  2. 2

    SQL查询以获取最高记录为2列的顶部记录

  3. 3

    sql查询以选择两列中具有相同id但不同值的记录

  4. 4

    MySQL查询获取列的总和

  5. 5

    如何获取最新记录或在mysql的列中具有所有不同值的最大对应日期的记录?

  6. 6

    如果两个条件在子记录的不同行上匹配,则高级MySQL查询可获取主记录

  7. 7

    如何在MYSQL中为单个ID计算同一列中记录的不同值

  8. 8

    在单个MySQL查询中获取所有列的不同计数

  9. 9

    获取列的每个不同值的最新记录

  10. 10

    Mongo Db查询以获取不同的记录

  11. 11

    高级MySQL查询可获取具有相同ID和不同子ID的最新记录的范围

  12. 12

    如何在mysql中查询不同的记录

  13. 13

    sql查询以选择两列中具有相同id但不同值的记录

  14. 14

    查询以获取每个唯一列ID的3条记录

  15. 15

    MySQL查询以获取结果集中的记录

  16. 16

    查询以获取总和和不同的MySQL

  17. 17

    如何从活动记录查询中获取列

  18. 18

    MySQL查询以获取ID包含在VBA数组中的记录

  19. 19

    雄辩的查询构建复杂的查询,以获取在同一表的2个不同列中搜索ID的唯一记录

  20. 20

    查询以获取不同列的数据

  21. 21

    如何执行MySQL查询以获取来自不同订阅的所有行(按ID排序)?

  22. 22

    计算不同列中的记录(MySQL / php)

  23. 23

    如何在MYSQL中为单个ID计算同一列中记录的不同值

  24. 24

    mysql在多个记录的选择查询中通过ID获取名称

  25. 25

    使用Oracle查询以从不同的列值检索不同的记录

  26. 26

    Codeigniter MySQL:插入记录与用户ID不同

  27. 27

    单个查询从具有不同列的多个表中获取记录

  28. 28

    从 MySQL 获取数据,不同查询的问题

  29. 29

    有没有办法使用不同的 ID 别名来获取 MySQL 记录

热门标签

归档