PDA

View Full Version : ساخت کوئری ترکیب سه جدول به همراه یک شرط



amin_sltny
دوشنبه 05 آبان 1393, 11:15 صبح
سلام دوستان من سه جدول به شکل زیر دارم:

posts
--------------------------------------------------
post_id | post_text | post_summery
-------------------------------------------------


post_meta
--------------------------------------------------
post_id | .... | othercolumns
--------------------------------------------------

post_setting
--------------------------------------------------
post_id | .... | othercolumns
--------------------------------------------------

حالا از این سه تا جدول می خوام یه جدول درست کنم که دو جدول post متا و post_setting به جدول posts اضافه بشن به وسیله post_id. این کار را با left join به شکل زیر انجام دادم:

select * from posts p left join posts_setting ps on p.post_id=ps.post_id left join postsmeta pm on p.post_id = pm.post_id and p.post_status = 'published' ORDER BY p.post_id DESC limit $page,$limit_num

اما مشکل اینجاست که من یه سطر دارم در جدول posts که post_status هست که وضعیت پست ها را مشخص می کنه و می خوام فقط پست های منتشر شده را نشون بدم p.post_status = 'published' اما این شرط اعمال نمیشه و همه پست ها را نشون میده. باید چه کار کنم

us1234
دوشنبه 05 آبان 1393, 14:02 عصر
به جای and در کوئری whrer قرار دهید :

select * from posts p left join posts_setting ps on p.post_id=ps.post_id left join postsmeta pm on p.post_id = pm.post_id where p.post_status = 'published' ORDER BY p.post_id DESC limit $page,$limit_num