【发布时间】:2017-03-14 13:16:07
【问题描述】:
所以我有一个查询,旨在查找并显示所有员工的部门、城市和国家名称,其 JOB_ID 为 SA_MAN 和 SA_REP,如下所示:
SELECT DEPARTMENT_NAME, CITY, COUNTRY_NAME
FROM OEHR_EMPLOYEES
INNER JOIN OEHR_DEPARTMENTS ON OEHR_EMPLOYEES.DEPARTMENT_ID=OEHR_DEPARTMENTS.DEPARTMENT_ID
INNER JOIN OEHR_LOCATIONS ON OEHR_DEPARTMENTS.LOCATION_ID=OEHR_LOCATIONS.LOCATION_ID
INNER JOIN OEHR_COUNTRIES ON OEHR_LOCATIONS.COUNTRY_ID=OEHR_COUNTRIES.COUNTRY_ID
WHERE JOB_ID LIKE '%SA_MAN%' OR JOB_ID LIKE '%SA_REP%'
ORDER BY DEPARTMENT_NAME DESC
/
但是,所有员工都驻留在一个部门中,因此对于带有 SA_MAN 或 SA_REP 的 JOB_ID 列中的每个员工,输出都是相同的。如图:
DEPARTMENT_NAME COUNTRY_NAME CITY
------------------------------ ---------------------------------------- ----------------------------
Sales United Kingdom Oxford
Sales United Kingdom Oxford
Sales United Kingdom Oxford
这会持续 34 行。简单地说,我怎样才能在查询中进行输出以停止重复显示相同数据的这种不必要的显示,而只显示一行。如果查询更改并且仍然执行相同的操作,我希望它也能够工作,以便每个包含指定员工的部门只显示一行。
【问题讨论】:
-
使用别名并相应地正确限定列名是一个非常好的习惯。它使查询更容易阅读 - 与明智地使用 CAPS LOCK 键相同。
-
尝试使用:SELECT DISTINCT
-
谢谢 Select Distinct Did the Job,你想把它放在下面以便我可以将其标记为答案吗?
标签: mysql sql database merge output