PDA

View Full Version : ادغام دو جدول هنگام سلکت



masiha68
پنج شنبه 08 خرداد 1393, 08:56 صبح
سلام دوستان
من میخام یک سلکت بزنم همزمان به دوتا از جدول های دیتابیسم که یک فیلد مشترک دارن ... توی php می شه این کارو کرد که دوتا سلکت می زنی و اونا رو با هم ادغام می کنی ولی نمی دونم تویmysql راهی واسه این کار وجود داره ؟

ممنون میشم راهنمایی کنید

nazanin_asadi_1
پنج شنبه 08 خرداد 1393, 09:11 صبح
نمی دونم تو چطوری توی php می گی میشه ولی توی mysql نمی تونی
اگه ممکنه کدت رو که توی php درست کار میکنه رو بزار اینجا تا ببینم چطوری این کار رو میکنی که توی mysql عمل نمیکنه

برای وصل کردن دو جدول به همدیگه باید از کلیدهایی که تعریف کردیم استفاده کنیم به صورت زیر

table1 (id,fname,ffamily);
table2 (id,id1,faddres);

SELECT
table1.fname,
table1.ffamily,
table2.faddres
FROM
table1
INNER JOIN table2 ON table1.id=table2.id1

masiha68
پنج شنبه 08 خرداد 1393, 11:28 صبح
میشه بیشتر توضیح بدین با یه مثال عملی

فرزند کوروش
پنج شنبه 08 خرداد 1393, 12:08 عصر
http://www.w3schools.com/sql/sql_join_left.asp

masiha68
پنج شنبه 08 خرداد 1393, 14:42 عصر
از صبح دارم با اینا سروکله میزنم... هنوز چیزی دستگیرم نشده ... من از یک کلاس پی دی او استفاده می کنم
کسی هست اصلا بگه کار اینا چیه و چطوری میشه باهاش کار کرد ....
خواهاشا لینگ انگلیسی ندیدن که امروز اصلا قسمت انگلیسیم لود نشد:اشتباه:

masiha68
پنج شنبه 08 خرداد 1393, 21:45 عصر
الان من اینو نوشتم ولی نمیدونم دقیقا چیکار می کنه ...

$this->dbcon->from('user') ->select('user.id , profile.avatar') ->leftJoin('profile on user.state = profile.name')->execute()->fetchAll()

masiha68
جمعه 09 خرداد 1393, 10:41 صبح
خب بعد از یک روز و چند ساعت به جواب رسیدم ...
شما توی leftjoin میخوایید دو یا چندتا جدول از دیتابیستون رو که حداقل یک فیلد مشترک (منظور از فیلد مشترک فیلدیه که هم توی جدول اول باشه و هم توی دومی ... مثلا جدول اول جدول کتاب هستش که یک ای دی داره و جدول دوم کامنت ها هستش که ای دی کتاب رو هم توی خودش نگه می داره ) دارن
حالا ما میایم یک سلکت می زنیم به کامنت ها و فرضا می خواییم اسم کتاب و قیمت کتاب رو هم کنار کامنت ها داشته باشیم ...روال کار اینطوریه ::
شما اول یه سلکت میزنید و کل فیلد های کامنت + فیلدهایی که میخوایید کنار کامنت و از جدول کتاب داشته باشین رو فراخوانی می کنید و بعد اون فیلد مشترک رو مساوی هم قرار میدید و حالا می تونید استفاده کنید .

return $this->dbcon->from('booklike')
->select('booklike.id , book.bookname ,book.bookprice , book.username , book.bookpic') ->leftJoin('book on booklike.idbook=book.id')
->execute() ->fetchAll() ; }
مثلا اینجا من یک سلکت زدم به لایک کتاب ها و همزمان اسم کتاب ، قیمت کتاب و عکس کتاب .... رو اضافه کردم بعد هم ای دی کتاب رو مساوی ای دی کتاب در جدول بوک قرار دادم که این دو مجموعه روی هم ست بشن ....

سوالی بود در خدمتم ... :لبخند: