MYSQL查询与来自同一表的多个小轮

问题描述:

因此,我有两个表作业和联系人,我试图做一个显示作业,显示工作位置和技术分配的行。现在联系人可以是技术人员或工作地点,我希望保持这种方式,但可以根据需要进行更改。什么是一个很好的方法来做到这一点。MYSQL查询与来自同一表的多个小轮

什么是添加第二where子句,将显示location_label正道

SELECT 
    jobs.job_id, contacts.location_label, contacts.tech_label 
FROM 
    jobs 
LEFT JOIN 
    contacts ON jobs.tech_id = contacts.contact_id 

工作表

Field Type Null Key  Default  Extra 
job_id int(6) NO PRI  NULL auto_increment 
location_id  int(5) NO  NULL   
tech_id  int(5) YES   0   
creator_id varchar(9) NO  NULL  
creation timestamp NO  CURRENT_TIMESTAMP  
service_requested varchar(400) YES   NULL  
service_performed varchar(400) YES   NULL  
status_id int(5) NO  NULL  

接触表

Field Type Null Key  Default  Extra 
contact_id int(9) NO PRI  NULL auto_increment  
location_label varchar(30)  YES   NULL  
address  varchar(20)  YES   NULL  
city varchar(15)  YES   NULL  
state varchar(2) YES   NULL  
zip  int(10)  YES   NULL  
phone int(11)  NO  NULL   
user_level int(2) YES   NULL  
first_name varchar(10)  YES   NULL  
last_name varchar(10)  YES   NULL    
type_tech tinyint(1) YES   NULL  
type_location tinyint(1) YES   NULL  
type_admin tinyint(1) YES   NULL  
tech_label varchar(20)  YES   NULL  
creator_id int(9) YES   NULL  

进出口寻找行输出成为 jobs.job_id,contacts.location_label,contacts.tech_labe升

contacts.location_label将是工作(jobs.location_id)的位置 contacts.tech_label将作业分配给(jobs.tech_id)科技

我发现了一些其他线程类似问题但他们没有一个似乎正常工作 谢谢

+1

欢迎来到*。我很不清楚你想要完成什么......你能从每个表格发布一些样本数据,并从这些数据中寻找你想要的结果吗? – 2012-07-13 00:52:00

+1

显示您的样品表和所需的输出,以便我们提供帮助 – 2012-07-13 00:53:08

您必须加入联系人表两次,一个用于技术和一个用于位置。

SELECT J.job_id, 
     L.location_label, 
     T.tech_label 
    FROM jobs J 
    LEFT JOIN contacts T ON J.tech_id = T.contact_id 
    LEFT JOIN contacts L ON J.location_id = L.contact_id