PDA

View Full Version : Join برای 4 جدول



navid3d_69
پنج شنبه 08 اسفند 1392, 20:45 عصر
سلام من می خوام یک کوئری بنویسم با join کلا با join یک مقداری مشکل دارم این هم پیچیده هست اگر امکانش هست کمک کنید و می خوام کوئری بهینه باشه


من می خوام از 4 تا جدول با هم بخونم


اول اینکه جدول ها به این صورت هست


جدول blog_post


id
title
text
blog
author_id




جدول author


id
name
email
blog


جدول post_category


id
post_id
category_id
blog




جدول blog_category


id
title
blog




حالا من می خوام از جدول blog_post فیلد ها titleو textوdate رو نمایش بدم


از جدول author فیلد name


از جدول post_category چیزی نمایش داده نمیشه ولی id post و id category رو ذخیره می کنه


از جدول blog_category هم می خوام فیلد title رو نمایش بدم


توی همه جدول ها باید فیلد blog یک مقدار داشته باشه


و اینکه ممکنه یک پست توی چندتا دسته باشه


یعنی در کل باید اطلاعت پست ها مثل نویسنده دسته بندی نمایش داده بهش

micro24
یک شنبه 11 اسفند 1392, 08:46 صبح
با سلام

این دو جدول blog_category، post_category را باهم می توان join زد مشکلی ندارد ارتباط این دو جدول با دو جدول دیگر به چه صورت است؟

navid3d_69
یک شنبه 11 اسفند 1392, 14:00 عصر
اون دوتا مشکلی ندارم من کلا می خوام همه این اطلاعات رو با join بگیرم یعنی اول از
blog_post عنوان پست رو بگیرم بعد از author اسم نویسنده پست رو بگیرم بعد با استفاده از post_category دسته بندی هایی که به اون پست مربوط هست رو بگیرم و آخر از جدول blog_category نام دسته بندی هایی که اون پست هست رو نمایش بدم

afshin9032
پنج شنبه 15 اسفند 1392, 22:48 عصر
کوئری تقزیبا شبیه زیر است و فقط باید جزئیات رو خودت تست کنی :


SELECT
`blog_post`.`title`,`blog_post`.`text`,`blog_post` .`date`,
`author`.`name`,`blog_category`.`title`
FROM
`blog_post`
INNER JOIN
`author`
ON
`blog_post`.`author_id`=`author`.`id`
INNER JOIN
`post_category`
ON
`blog_post`.`id`=`post_category`.`post_id`
INNER JOIN
`blog_category`
ON
`post_category`.`post_category`=`blog_category`.`i d`

ghasemweb
دوشنبه 04 فروردین 1393, 05:20 صبح
به نظر من از Selet داخلی استفاده کنید





SELECT

`title`,`text`,`date`,
(select `name` from `author` where `id`=`blog_post`.`author_id`) as author

FROM `blog_post`
Where blog='blog_name'









البته در مورد نمایش موضوعات یکم کوئری پیچیده میشه. فکر میکنم با کوئری ساده نشه موضوعات مختلف مربوط به پست رو به دست آورد باید از استورد پروسیجری چیزی استفاده کرد یا اینکه بعد از سلکت بالا دوباره یه سلکت دیگه واسه استخراج موضوعات میشه نوشت