从3表中选择所有信息

时间:2019-06-28 13:18:50

标签: mysql sql oracle

我有三个表:

+------------------------------------------+
|             profile_employee             |
+------------------------------------------+
| id | first_name | last_name | phone | cv |
+----+------------+-----------+-------+----+

+------------+
|   joburi   |
+------------+
| id | titlu |
+----+-------+

+---------------------------------------+
|             job_to_profile            |
+---------------------------------------+
| id | id_job | id_profile | created_at |
+----+--------+------------+------------+

我想从所有这三个表中选择所有信息,我有此查询,但只选择了first,last,phone,cv:

SELECT jtp.id, 
       jtp.created_at as data_aplicare, 
       profile_employee.first_name, 
       profile_employee.last_name, 
       profile_employee.phone, 
       profile_employee.cv 
FROM profile_employee 
LEFT JOIN job_to_profile jtp ON jtp.id_profile = profile_employee.id

如果这里有很多答案,但仍然不停地梳理头发,以获得所需的结果。那里的任何SQL专家都可以看到一个简单的解决方案。可能需要的JOIN令人不快。

3 个答案:

答案 0 :(得分:1)

您可以使用INNER JOIN使用以下内容:

SELECT *
FROM profile_employee pe INNER JOIN job_to_profile jtp ON pe.id = jtp.id_profile
    INNER JOIN joburi j ON jtp.id_job = j.id

答案 1 :(得分:0)

您从关系表 job_to_profile 开始,并内部连接到两个nomeclator表 profile_employee joburi

select
    p.id, p.first_name, p.last_name, p.phone, p.cv
    , j.id, j.titlu
    , jp.id, jp.id_job, jp.id_profile, jp.created_at
from
    job_to_profile jp
    inner join joburi j on j.id = jp.id_job
    inner join profile_employee p on p.id = jp.id_profile

答案 2 :(得分:0)

尝试这样构图:

Select * 
from table A T1
inner join table B T2 ON t1.field = t2.field
inner join table C T3 on t1.field = t3.field

例如

SELECT * FROM profile_employee 
LEFT JOIN job_to_profile jtp 
ON profile_employee.id = jtp.id_profile 
LEFT JOIN joburi juri
ON profile_employee.id = juri.id