2016-08-24 1 views
0

Ich arbeite mit CodeIgniter und MySQL. Ich habe Tabelle job_post, die unten wie folgt aussieht:MySQL Join Abfrage funktioniert nicht

enter image description here

Hier habe ich Schreib Abfrage wie folgt:

select jp.*,u.first_name,u.last_name,group_concat(DISTINCT s.skill) as sk,group_concat(DISTINCT c.name) as ct,ufj.fav_id,ufj.is_favourite 
from job_post as jp 
left join industry as ind on ind.ind_id = jp.industry_id 
left join city c ON(FIND_IN_SET(c.city_id, jp.city) > 0) 
left join skill s ON(FIND_IN_SET(s.skill_id, jp.skill) > 0) 
join users as u on u.user_id = jp.emp_id 
left join user_favourite_job as ufj on ufj.job_id = jp.job_id and ufj.user_id = 8 
where jp.city in (2) and jp.is_delete = 1 group by job_id 

Wenn ich Pass Stadt ID als 1 bei jp.city in (1) haben als perfektes Ergebnis gibt, aber wenn Ich habe Stadt ID als 2 bei jp.city in (2) übergeben.

Also was sollte ich in meiner Abfrage ändern müssen?

Hinweis: Wenn ich Stadt ID 2 übergeben, als es ersten und letzten Datensatz anzeigen. Aber im Moment funktioniert es nicht.

+0

kann die ID-Abgleich nicht plz Ihre ids – Karthi

+0

wie Verwendung jp.city überprüfen ‚% 2%‘, wie in nicht gewünschte Ergebnis –

+1

Speichern Komma trennen ist nicht gut nutzen one to many Beziehung –

Antwort

1

USe c.city_id anstelle von jp.city in where Klausel.

select jp.*,u.first_name,u.last_name,group_concat(DISTINCT s.skill) as sk,group_concat(DISTINCT c.name) as ct,ufj.fav_id,ufj.is_favourite 
from job_post as jp 
left join industry as ind on ind.ind_id = jp.industry_id 
left join city c ON(FIND_IN_SET(c.city_id, jp.city) > 0) 
left join skill s ON(FIND_IN_SET(s.skill_id, jp.skill) > 0) 
join users as u on u.user_id = jp.emp_id 
left join user_favourite_job as ufj on ufj.job_id = jp.job_id and ufj.user_id = 8 
where c.city_id in (2) and jp.is_delete = 1 group by job_id 
1

Update where-Klausel

where jp.city like '%2%' and jp.is_delete = 1 

oder unten verwenden, wenn es 1,2 und 11,12 enthält, etc

where jp.city like '%1%2%' and jp.city not like '%11%12%' and jp.is_delete = 1 

aber es ist nicht optimal verwenden, so wenden Sie sich bitte ids als eine zu viele halten relationship