php - 在两个表中搜索并使用 PDO 合并结果

标签 php mysql

我有两个名为companiesjobs 的表。它们是相关的 - jobs 表有一个外键 company_id

公司表列有:公司名称、城市、省份等

jobs 表列:标题、部门、描述等

我想在这些列中搜索两个表,如果关键字在 jobs 表中有匹配项,则从 company 表中获取相关数据,如果匹配项是在 company 表中,我想获取与公司相关的所有工作。

据我所知,为了在两个表中进行搜索,我必须使用 UNION,这是有效的:

$sql= "(SELECT title, department FROM  jobs WHERE title LIKE ? ) 
UNION 
(SELECT companyname,city FROM  companies WHERE companyname LIKE ?)";

我不知道如何根据匹配从另一个表中获取相关数据。是否可以使用 JOIN 进行一次调用?

谢谢。

最佳答案

使用JOINOR 条件:

SELECT jobs.title, jobs.department,
companies.companyname, companies.city
FROM jobs 
JOIN companies ON companies.id = jobs.company_id
WHERE (jobs.title LIKE ? OR companies.companyname LIKE ?)

使用UNION:

SELECT jobs.title, jobs.department,
companies.companyname, companies.city
FROM jobs 
JOIN companies ON companies.id = jobs.company_id
WHERE jobs.title LIKE ?

UNION

SELECT jobs.title, jobs.department,
companies.companyname, companies.city
FROM jobs 
JOIN companies ON companies.id = jobs.company_id
WHERE companies.companyname LIKE ?

关于php - 在两个表中搜索并使用 PDO 合并结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37802438/

相关文章:

php - Plesk Api 创建具有托管类型的新域

php - 获取远程文件大小(不使用 Content-Length 字段)

php - 遗漏了什么?

mysql - 如何将数据限制为仅最后 5 个结果

MySQL从多列中选择并计算值

php - 比较php中的数组值

php - 用于 postgreSQL 的 ssh 隧道

php - IE 的条件标签 - 如果浏览器是 IE,是否可以不加载 JS 文件?

javascript - ajax成功后如何更改文本

将限制设置为 13214 时 MySQL 变慢