2016-06-14 23 views
1

Ich habe zwei Tabellen mit Namen Unternehmen und Jobs. Sie sind verwandt - Jobtabelle hat einen Fremdschlüssel company_id.Suche in zwei Tabellen und kombinieren Ergebnisse mit PDO

Firma Tabellenspalten sind: Firmenname, Stadt, Provinz usw.

Jobs Tabellenspalte: Titel, Abteilung, Beschreibung etc

Ich mag beiden Tabellen in diesen Spalten suchen und, wenn die Keyword hat eine Übereinstimmung in Jobs Tabelle erhalten die entsprechenden Daten aus der Firma Tabelle, und wenn das Spiel in der Firma Tabelle ist, möchte ich alle Jobs im Zusammenhang mit der erhalten Unternehmen.

Soweit ich kenne, um in beiden Tabellen I UNION verwenden, um zu suchen, dies funktioniert:

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

Ich weiß nicht, wie von der anderen Tabelle, Daten zu erhalten auf dem Spiel abhängig. Ist es möglich mit nur einem Anruf mit JOIN?

Danke.

+0

Verwenden company_id in dem Zustand, wenn Sie in den beiden Tabelle company_id haben. –

Antwort

1

Verwenden JOIN und OR Zustand:

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

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

Danke! Ich habe es, keine Notwendigkeit für UNION, einfach JOIN ist genug. – RomanGP

+0

'UNION' würde besser funktionieren. – hjpotter92

+0

@ hjpotter92 Wie ist es mit UNION? – RomanGP

1

Versuchen Sie, diese

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') 
Verwandte Themen