• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
راهنمایی برای زدن کوئری
#1
سلام سلام

من یه جدول بصورت زیر
کد پی‌اچ‌پی:
ostan
id 
name
tehran
azerbaijan E
alborz
... 
دارم و یه جدول دیگه بصورت زیر
کد پی‌اچ‌پی:
city
id 
name parent
tehran 1
varamin 1
tabriz 2
marand 2
-azar shahr 2
karaj 
الان میخام یه کویری بزنم (در چارچوب کدایگنایتر با کتابخانه db) که خروجی زیر رو داشته باشه.

استان : تهران - شهر : تهران
استان : تهران - شهر : ورامین
استان : آذربایجان شرقی - شهر : تبریز
استان : آذربایجان شرقی - شهر : مرند
استان البرز - شهر : کرج
...

میخام با یک کوئری همه سطرهای ostan و city رو داشته باشم البته متناسب با پرنتشون.
با استفاده از join کوئری رو میزنم ولی در خروجی فقط برام سطرهای جدول ostan رو میده.
همیشه برای یادگیری، موضوعاتی هست!

فرهاد حسن پور / بیرگیک

  پاسخ
تشکر شده توسط :
#2
سلام،
چه کوئری میزنی؟ INNER JOIN اگه بزنی همینی که میخوای رو میاره
غایب
  پاسخ
تشکر شده توسط : farhadhp
#3
کد:
SELECT ostan.name as ostan, city.name as city FROM ostan LEFT JOIN city ON city.parent = ostan.id ORDER BY ostan.id
اگر میخوای فقط اونایی که شهر دارن رو بیاره به INNER JOIN تغییر بده.
  پاسخ
تشکر شده توسط : farhadhp
#4
(۱۳۹۶ فروردین ۲۳, ۰۱:۰۶ ق.ظ)Alaa نوشته: سلام،
چه کوئری میزنی؟ INNER JOIN اگه بزنی همینی که میخوای رو میاره

میزنم ولی فقط یک سطر رو بر میگردونه در حالی که من میخام همه سطرها رو بیاره.
همیشه برای یادگیری، موضوعاتی هست!

فرهاد حسن پور / بیرگیک

  پاسخ
تشکر شده توسط :
#5
کد:
SELECT ostan.name as state, city.name as city
FROM ostan
LEFT JOIN city ON city.parent = ostan.id
WHERE city.name IS NOT NULL AND city.name != '';

[عکس: q0xd_untitled.png]

بجای ostan بهتره بنویسی state و بجای parent بهتره بنویسی state_id
وبلاگ: Yousha.Blog.ir


 کد کمتر => خطای کمتر => قابل فهمتر => خوانایی بالاتر => نگهداری بهتر

  پاسخ
تشکر شده توسط : farhadhp ayoubsys
#6
ممنون یوشا جان حل شد.

نقل قول:بجای ostan بهتره بنویسی state و بجای parent بهتره بنویسی state_id
بیسوادیه دیگه Big Grin

تفاوت INNER JOIN و LEFT JOIN در چیه ؟
همیشه برای یادگیری، موضوعاتی هست!

فرهاد حسن پور / بیرگیک

  پاسخ
تشکر شده توسط :
#7
نقل قول: تفاوت INNER JOIN و LEFT JOIN در چیه ؟
[عکس: VQ5XP.png]
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط : farhadhp
#8
(۱۳۹۶ فروردین ۳۰, ۰۳:۲۱ ق.ظ)Reza نوشته:
نقل قول: تفاوت INNER JOIN و LEFT JOIN در چیه ؟ 
سلام تفاوتش با اینر جوین در اینه که برای مثال ممکنه که شما استانی به نام کرمان هم در لیست داشته باشید که برای آن هیچ شهری تعریف نکرده باشید. حالا اگر اینر جوین بنویسید بدلیل اینکه هیچ رابطه مشرتکی بین جدول استان و شهر برای کرمان وجود ندارد ، استان کرمان را نمایش نمیدهد.
برای اینکه بگید تمامی استان ها را نشان بدهد حال چه شهری داشته باشد چه نداشه باشد ، استان را به شهر لفت جوین کن. تو خروجی میبینی که حتی استانهایی که شهر برایشان تعریف نشده هم نمایش داده میشوند.

اگر متوجه نشدی بگو مثال رو با عکس برات پیاده کنم
موفق باشی Cool
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان