似乎没有内部联接,它会给我不同的值,但有了它,它就会显示所有这些值。为什么它没有给我独特的值(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
时,计算机要做什么??应该猜吗?
如果您需要显示另一个表中的数据,其中这些额外字段中有多行(具有不同的值),那么您需要指定要提取的值。您可以使用聚合函数,例如 Min
或Max
与 group 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/