PDA

View Full Version : ساخت View صحیح با mysql



Moh3nmir
شنبه 17 تیر 1391, 12:55 عصر
با سلام و درود وعرض خسته نباشید
یه view رو با استفاده از phpmyadmin ساختم که از 3 جدول فیلد هاشو نمایش میده


SELECT `people`.*, `city`.`Type` as CityType, `jobs`.`Type` as JobsType
FROM people, city, jobs

وقتی نتیجه رو میزنم تا ببینم ، تمامی عناصر جدول people رو با هر کدوم از عناصر جدول city میاره مثلا


admin tehran
admin mashhad
admin arak
...


ولی در حالی که من یه کاربر admin بیشتر ندارم که از tehran هست
لطفا کمکم کنید این view رو درست کنم مرسی

سعید صابری
شنبه 17 تیر 1391, 13:55 عصر
از شرط برای محدود کردن نمایش استفاده کنید.
البته بستگی به معماری جدولتون داره که روابط جدول ها را چگونه تعریف کرده باشید یعنی جدولتون کلید اصلی و کلید خارجی و... داره؟
برای مثال

SELECT `people`.*, `city`.`Type` AS CityType, `jobs`.`Type` AS JobsType
FROM people, city, jobs
WHERE people.id = city.id = jobs.id

Moh3nmir
یک شنبه 18 تیر 1391, 08:21 صبح
با سلام مجدد
با این شرط فقط سطر اول از جدول رو بهم نشون میده ، درست کارنمیکنه من میخوام تمامی سطرهای تو جدول رو بطور صحیح نشون بده
باتشکر

Moh3nmir
چهارشنبه 21 تیر 1391, 10:06 صبح
با سلام مجدد
کسی هست که بتونه کمکم کنه و مشکلم رو حل کنه ؟

Moh3nmir
چهارشنبه 21 تیر 1391, 11:23 صبح
با سلام مجدد
تونستم مشکلم رو بسلامتی با کمک یکی از دوستان حل کنم که کد به این صورت نوشته میشه


SELECT `people`. * , `people_city`.`Id` as CityId , `people_city`.`Type` as CityType, `people_jobs`.`Id` as JobsId , `people_jobs`.`Type` as JobsType
FROM people
INNER JOIN people_jobs ON people.Id_Jobs = people_jobs.Id
INNER JOIN people_city ON people.Id_City = people_city.Id

بعد از انتخاب فیلد هایی که مایل هستید تو view نمایش داده بشن ، INNER JOIN می دیم با جدول فرعی و کلید خارجی موجود در جدول اصلی رو با کلید اصلی در جدول فرعی با دستور ON مساوی قرار میدیم ، برای آشنایی بیشتر میتونید به این آدرس (http://estakhrian.blogfa.com/cat-10.aspx) برید.
موفق باشید
یاحق
( زکات علم ، نشر آن است ! )