同一表中具有多个where的MYSQL查询
所以我有两个表格,工作和联系人,我试着做一行显示工作,显示工作地点和分配的技术。现在的联系人可以是技术人员或工作地点,我希望保持这种方式,但如果需要可以更改。做这件事的好方法是什么 添加显示位置标签的第二个where子句的正确方法是什么同一表中具有多个where的MYSQL查询,mysql,union,left-join,where-clause,multiple-tables,Mysql,Union,Left Join,Where Clause,Multiple Tables,所以我有两个表格,工作和联系人,我试着做一行显示工作,显示工作地点和分配的技术。现在的联系人可以是技术人员或工作地点,我希望保持这种方式,但如果需要可以更改。做这件事的好方法是什么 添加显示位置标签的第二个where子句的正确方法是什么 SELECT jobs.job_id, contacts.location_label, contacts.tech_label FROM jobs LEFT JOIN contacts ON jobs.tech_id = contacts.c
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\u id、contacts.location\u标签、contacts.tech\u标签
contacts.location\u标签将是作业的位置(jobs.location\u id)
contacts.tech_标签将是分配给该作业的技术人员(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。我很不清楚你想实现什么。。。您可以发布每个表中的一些示例数据以及您从这些数据中寻找的输出吗?显示您的示例表和所需的输出,以便我们提供帮助