gpt4 book ai didi

php - MYSQL - 返回行数组的 INNER JOIN

转载 作者:行者123 更新时间:2023-11-29 07:37:10 25 4
gpt4 key购买 nike

是否适用于在一条 SQL 语句中选择所有员工部门和相关职位(包括所有部门和职位的所有数据),其中每个员工可能与多个部门和职位相关联,如下所示

员工表

+-------------+---------------+
| Employee ID | Employee Name |
+-------------+---------------+
| 27 | Name |
| 28 | Name 2 |
+-------------+---------------+

员工职位

+-------------+---------------+--------+-----------+-----------+
| Employee ID | Department ID | Job ID | From | To |
+-------------+---------------+--------+-----------+-----------+
| 27 | 1 | 3 | some date | some date |
| 27 | 2 | 7 | some date | some date |
+-------------+---------------+--------+-----------+-----------+

部门

+---------------+-----------------+
| Department ID | Department Name |
+---------------+-----------------+
| 1 | Sales |
| 2 | Operation |
+---------------+-----------------+

工作

+--------+---------------+-------------------+
| Job ID | Department ID | Job Name |
+--------+---------------+-------------------+
| 3 | 1 | Sales Director |
| 7 | 2 | Technical Support |
+--------+---------------+-------------------+

编辑:以下是我想要检索的数据的示例:

array(
'0' => array(
'department name' => 'name',
'department ID' => 'id',
'job name' => 'name',
'job id' => 'id',
),
'1' => array(
'department name' => 'name2',
'department ID' => 'id2',
'job name' => 'name2',
'job id' => 'id2',
)
)

编辑:

这是我为获取数组而编写的语句,但它不会以数组形式检索部门数据

SELECT * FROM employees_emp 
INNER JOIN job_history_jhis ON (employeeId_emp = employeeId_jHis)
INNER JOIN departments_dep ON (departmentId_jHis = departmentId_dep)
INNER JOIN jobs_job ON (jobId_jHis = jobId_job)
WHERE employeeId_emp = '27'

最佳答案

要获取您要查找的所有值,您只需在相关列(例如主键和外键)上将所有表连接在一起,并在 select 语句中包含您需要的任何内容。从底层开始,逐步向上。

例如,每个工作都有一个部门,因此您可以像这样从这两个部门获取信息:

SELECT j.id, j.jobName, d.id, d.departmentName
FROM jobs j
JOIN department d ON d.id = j.department;

要获取员工信息,您可以通过加入 EmployeeJobsEmployee 表来执行相同的操作。

我想指出您有一些标准化问题。在 job 表中指定该职位所属的部门,不需要在 employeeJobs 中也包含 department,您可以您的数据库遇到一些异常情况。

关于php - MYSQL - 返回行数组的 INNER JOIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30358378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com