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)科技
我发现了一些其他线程类似问题但他们没有一个似乎正常工作 谢谢
答
您必须加入联系人表两次,一个用于技术和一个用于位置。
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
欢迎来到StackOverflow。我很不清楚你想要完成什么......你能从每个表格发布一些样本数据,并从这些数据中寻找你想要的结果吗? – 2012-07-13 00:52:00
显示您的样品表和所需的输出,以便我们提供帮助 – 2012-07-13 00:53:08