employee
및 department
, department
2 테이블, dpt1 및 dpt2, 12 명의 직원, 6 각 부서 및 4 개의 테이블이 있다고 가정 해 봅시다. 두 부서에 속한다. 어떻게하면 mysql 쿼리를 사용하여 dpt2에만 속하고 dpt1에 속하지 않는 직원을 찾을 수 있습니까?특정 부서 구성원을 선택하는 mysql 쿼리를 작성하는 데 도움이
0
A
답변
0
SELECT employee.*
FROM employee
INNER JOIN employee_belongs_to_departments
WHERE employee.id = employee_belongs_to_departments.employee_id
AND employee_belongs_to_departments.department_id = 'dpt2'
AND employee.id NOT IN (
SELECT DISTINCT ebtd2.employee_id
FROM employee_belongs_to_departments ebtd2
WHERE ebtd2.employee_id = employee.id
AND ebtd2.department_id = 'dpt1'
)
0
이런 상황에서 일반적인 접근 방식은 세 번째 "연결"테이블, employeeDepartment
같은라는 뭔가를하는 것입니다. 이것이 바로 스토리지 엔진 (즉, 할 어려운하지 않는 것이)를 사용 할 것을 요구하지만
CREATE TABLE employeeDepartment (
employee INT UNSIGNED NOT NULL,
department INT UNSIGNED NOT NULL,
PRIMARY KEY (employee, department)
)
다음은 해당 테이블의 기본 키에 employee
및 department
외래 키를 확인합니다.
이렇게하면 여러 가지 일을 훨씬 쉽게 할 수 있습니다 (한 열에 값 목록 저장).
그런 다음, 당신이 직원과 부서 간의 연결을 설계하는 방법
SELECT
eD1.employee
FROM
employeeDepartment AS eD1
LEFT JOIN employeeDepartment AS eD2 ON
eD1.employee = eD2.employee AND
eD2.department = 'dpt2' -- replace with appropriate integer
-- if using integers as I suggested
WHERE
eD1.department = 'dpt1' AND -- same comment applies
eD2.employee IS NULL
관련 문제
- 1. PL/SQL 쿼리를 작성하는 데 도움이 필요합니다.
- 2. 내 문제의 SQL 쿼리를 작성하는 데 도움이 필요합니다.
- 3. MySQL의 쿼리를 수정하는 데 도움이
- 4. MySQL 쿼리 : 특정 값이없는 행을 선택하는 방법?
- 5. 데이터 액세스 방법을 선택하는 데 도움이 필요합니다
- 6. 오픈 소스를 선택하는 데 도움이 필요합니다.
- 7. mysql/php는 특정 쿼리를 작성하는 방법을 잘 모릅니다.
- 8. PostgreSQL 트리거 함수를 작성하는 데 도움이 필요합니다.
- 9. Java에서 컵에서 AST를 작성하는 데 도움이 필요합니다.
- 10. 하스켈에서 함수 후보를 작성하는 데 도움이 필요합니다
- 11. Enumerable.GroupBy에 Linq.Expression을 작성하는 데 도움이 필요합니다.
- 12. Android 앱을 작성하는 데 도움이 필요합니다.
- 13. PHP 함수를 다시 작성하는 데 도움이 필요합니다
- 14. 이미지 업로드 양식을 작성하는 데 도움이 필요합니다.
- 15. SELECT 쿼리를 이해하는 데 도움이 필요합니다.
- 16. "not in"쿼리를 최적화하는 데 도움이 필요합니다.
- 17. 임의의 레코드에 대한 쿼리를 최적화하는 데 도움이
- 18. SQL 쿼리를 만드는 데 도움이 필요합니다.
- 19. SQL 쿼리를 구성하는 데 도움이 필요합니다.
- 20. linq에 SQL 쿼리를 작성하는 데 문제가 있습니다
- 21. SQL 서브 쿼리를 작성하는 데 문제가 있습니다
- 22. MySQL에서 비어 있지 않은 열 값을 선택하는 데 도움이 필요합니다.
- 23. 이 MySQL 데이터베이스 쿼리를 작성하는 방법은 무엇입니까?
- 24. 이 MySQL 쿼리를 작성하는 방법은 무엇입니까?
- 25. 다음 mysql 쿼리를 다시 작성하는 방법
- 26. codeigniter mysql join 쿼리를 작성하는 방법
- 27. Zend_db_table : MySQL 키워드로 선택하는 방법
- 28. ID로 MySQL 데이터베이스의 내용을 표시하는 데 도움이
- 29. mysql 쿼리에서 * 특정 열을 선택하는 것보다 느린가요?
- 30. MySQL 테이블에서 특정 행을 선택하는 방법은 무엇입니까?
사용 "dep1, DEPT2"값을 가진 직원이 많은 관계, 아니면 그냥 필드에 당신이 많은과 별도의 테이블이 할 수있는? – bensiu
dept1, dept2 값이있는 필드 .... – Bluemagica
너무 현명하지 않습니다 ... 변경 사항을 고려합니까? – bensiu