mysql - 为什么它没有给我独特的值(value)观

标签 mysql sql

似乎没有内部联接,它会给我不同的值,但有了它,它就会显示所有这些值。为什么它没有给我独特的值(value)观?

她是我的代码:

 SELECT DISTINCT 
    m.manager_account_id 
  , first_name
  , last_name
  , m.active
  , m.user_name
  , d.department_name
FROM tbl_Manager_Accounts m
LEFT OUTER JOIN tbl_Manager_App_Link mal ON m.manager_account_id = mal.manager_account_id
LEFT OUTER JOIN tbl_Application a ON a.application_id = mal.application_id
INNER JOIN tbl_Department d on a.department_id=d.department_id
WHERE a.department_id = @department_id and m.user_name not like '%admin%'
OR m.department_id = @department_id and m.user_name not like '%admin%'
ORDER BY last_name

我的 manager_id 的结果如下:

383 第381章 第381章 第381章 2877 第382章 2876 第435章 第435章 第435章 第435章 第435章 第435章

最佳答案

每个 ManagerId 不能仅生成一行并仍然显示您想要的所有其他字段......当连接表中存在相同的多行ManagerID时,计算机要做什么??应该猜吗?

如果您需要显示另一个表中的数据,其中这些额外字段中有多行(具有不同的值),那么您需要指定要提取的值。您可以使用聚合函数,例如 MinMaxgroup By如:

SELECT m.manager_account_id,
    first_name firstName, last_name last_name
    Min(m.active) Active,
    Min(m.user_name) username,
    Min(d.department_name) DeptName
FROM tbl_Manager_Accounts m
    LEFT JOIN tbl_Manager_App_Link mal 
        ON m.manager_account_id = mal.manager_account_id
    LEFT JOIN tbl_Application a 
        ON a.application_id = mal.application_id
    JOIN tbl_Department d 
        on a.department_id=d.department_id
WHERE a.department_id = @department_id and m.user_name not like '%admin%'
    OR m.department_id = @department_id and m.user_name not like '%admin%'
Group By m.manager_account_id, first_name, last_name
ORDER BY last_name

关于mysql - 为什么它没有给我独特的值(value)观,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24681792/

相关文章:

sql - 当表有自增主键时,如何跳过MySQL中的所有列名?

sql - 在自定义表上分组不起作用

mysql - MySQL:无法建立表格(错误编号:150)

mysql - SQL中基于不同日期字段的比率计算

mysql - 即使 mysql 中的值为零,如何在 Q1、Q2、Q3、Q4 中显示值为零

mysql - 该查询没有按照我想要的方式对结果进行排序

mysql - TYPO3 IRRE 打开记录极慢

sql - 如何过滤以获取列的值恰好是排序后的某个数组,Bigquery

mysql - 更新外键表

MySQL如何通过外键id选择多行?