2016-06-14 13 views
1

企業の2つのテーブルがあります。それらは関連しています - ジョブテーブルには外部キーcompany_idがあります。表の列がある2つのテーブルを検索し、結果をPDOと組み合わせる

会社:会社名、都市、州など

ジョブテーブル列:タイトル、部署、説明など

私はこれらの列にしている場合、両方のテーブルを検索したいですキーワードはのジョブに一致しますテーブルは会社テーブルから関連するデータを取得し、一致がの会社テーブルにある場合は、関連するすべてのジョブを取得したい 会社。

は、私の知る限りでは、私がUNIONを使用する必要が両方のテーブルに検索するために、これは動作します:私は試合に応じて、他のテーブルから関連データを取得する方法を知らない

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

。 JOINを使って1回の呼び出しで可能ですか?

ありがとうございました。

+0

使用してみてくださいあなたは、両方のテーブルでのcompany_idしている場合は、WHERE条件でのcompany_id。 –

答えて

1

使用JOINOR条件:UNION

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 ?) 

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 ? 
+0

ありがとうございます!私はそれを持って、UNIONの必要はない、単純なJOINで十分です。 – RomanGP

+0

'UNION'はより良い結果を出します。 – hjpotter92

+0

@ hjpotter92 UNIONではどのようにしていますか? – RomanGP

1

この

SELECT a.title, a.department,c.companyname, c.city 
FROM a 
JOIN c ON c.id = a.company_id 
WHERE (a.title LIKE 'title' OR c.companyname LIKE 'companyname') 
関連する問題