Mysql 在联接期间从单个查找表联接多个表

Mysql 在联接期间从单个查找表联接多个表,mysql,pdo,Mysql,Pdo,我试图从多个表中输出多个列和。通常,我会使用一个内部联接,这样我就知道查找表中id的值是多少 SELECT people.*, category.name AS category_name, FROM people INNER JOIN category ON people.category_id = category.id 但我需要使用相同的行数据对同一个查找表进行多次查找 在下面的例子中,我想知道什么人有什么工作,他们的类别是什么

我试图从多个表中输出多个列和。通常,我会使用一个内部联接,这样我就知道查找表中id的值是多少

SELECT  people.*,                    
        category.name AS category_name,
FROM people 
INNER JOIN category ON people.category_id = category.id
但我需要使用相同的行数据对同一个查找表进行多次查找

在下面的例子中,我想知道什么人有什么工作,他们的类别是什么,以及默认的工作状态通常是什么

但我似乎无法对查找表进行两个内部联接

我已经试过了

SELECT  people.*,                    
        jobs.* 
        category.name AS category_name,

FROM people p

JOIN jobs AS j ON p.job_id = jobs.id
INNER JOIN category ON people.category_id = category.id
但恐怕我对自己的问题了解不够,不知道该问谷歌什么

有什么帮助吗

+----+-------+--------+-------------+
| id | name  | job_id | category_id |
+----+-------+--------+-------------+
| 1  | Adam  | 1      | 1           |
+----+-------+--------+-------------+
| 2  | Beth  | 2      | 2           |
+----+-------+--------+-------------+
| 3  | Clint | 1      | 2           |
+----+-------+--------+-------------+
工作

类别

+----+-----------+
| id | name      |
+----+-----------+
| 1  | Full-Time |
+----+-----------+
| 2  | Part-Time |
+----+-----------+
我想要的结果

+----+-------+--------+----------+--------------+-------------+---------------+
| id | name  | job_id | job_name | job_category | category_id | category_name |
+----+-------+--------+----------+--------------+-------------+---------------+
| 1  | Adam  | 1      | Cook     | Full-Time    | 1           | Full-Time     |
+----+-------+--------+----------+--------------+-------------+---------------+
| 2  | Beth  | 2      | Nurse    | Part-Time    | 2           | Part-Time     |
+----+-------+--------+----------+--------------+-------------+---------------+
| 3  | Clint | 1      | Cook     | Full-Time    | 2           | Part-Time     |
+----+-------+--------+----------+--------------+-------------+---------------+

您只需两次加入类别表,一次加入人员类别,一次加入职务类别。此查询将执行您想要的操作:

SELECT p.name, p.job_id, j.name AS job_name, 
       c1.name AS job_category, p.category_id, c2.name AS category_name
FROM people p
JOIN jobs j ON j.id = p.job_id
JOIN category c1 ON c1.id = j.category
JOIN category c2 ON c2.id = p.category_id
输出:

name    job_id  job_name    job_category    category_id     category_name
Adam    1       Cook        Full-Time       1               Full-Time
Beth    2       Nurse       Part-Time       2               Part-Time
Clint   1       Cook        Full-Time       2               Part-Time

是否可以对人员和工作进行选择*?或者第二个表的列是否必须被声明?如果您需要的话,您完全可以使用SELECT p.*、j.*、c1.name、c2.name。我正在看你在问题中的专栏。谢谢@Nick!我非常感激!
name    job_id  job_name    job_category    category_id     category_name
Adam    1       Cook        Full-Time       1               Full-Time
Beth    2       Nurse       Part-Time       2               Part-Time
Clint   1       Cook        Full-Time       2               Part-Time