نمایش نتایج 1 تا 14 از 14

نام تاپیک: اتصال 5 جدول در یک select

  1. #1

    اتصال 5 جدول در یک select

    با سلام به همه دوستان
    http://cookbook.gigfa.com

    این سایت با وردپرس زده شده من دارم با خود php این کارو میکنم

    عکس زیر را نگاه کنید


    من 5 تا جدول دارم میخوام ب این شکل نشون بدم داخل یک select
    میدونم اسمش inner jion هستش ولی هر کدی میزنم اررور میده

    سرچ هم زیاد کردم ولی درک از کد هاشون نمیکنم خیلی خیلی عجیب غریب مینویسن

    اسم جدول ها
    video
    news-game
    it-news
    game-review

    و تو هر جدول
    title
    date
    message
    خونده میشه
    هر جوری کد زدم ولی اررور میده

  2. #2

    نقل قول: اتصال 5 جدول در یک select


    SELECT news-game.title, news-game.date, news-game.message,
    video.title, video.date, video.message FROM news-game, video
    INNER JOIN video ON news-game.id = video.id;

  3. #3
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: اتصال 5 جدول در یک select

    اول اینکه ساختار جدول ها رو توضیح بده که مشخص بشه چجوری به هم مرتبط هستن و اینکه آیا رابطه جدول ها 1 به 1 هست , یا 1 به چند
    دوم اینکه کدت رو بزار بشه دید چی نوشتی (نمیدونم این پست دومی که گزاشتی همین کدته یا جواب صحیحه که خودت پیدا کردی یا ... )
    سوم اینکه متن اررورت رو بزار مشخص بشه کجاش مشکل داری

    در کل ساختار جوین 3 تیبل مثلا به این شکل میشه


    لیست فیلد هایی که میخای
    رابطه تیبل 1 با تیبل 2
    رابطه تیبل 2 با تیبل 3


    مثلا 3 تا تیبل داری t1 , t2 , t3

    با این ساختار

    t1 : id , col
    t2 : id , col , t1_id
    t3 : id , col , t2_id

    کوئری اینجوری میشه

    select t1.col , t2.col , t3.col
    from t1
    join t2 on t1.id = t2.t1_id
    join t3 on t2.id = t3.t2_id

  4. #4

    نقل قول: اتصال 5 جدول در یک select

    عکس از کد و اررور
    و

    اینم خود کد

    SELECT news-game.title, news-game.date, news-game.message
    video.title, video.date, video.message,
    it-news.title, it-news.date, it-news.message,
    game-translate.title, game-translate.date, game-translate.message,
    game-review.title, game-review.date, game-review.message
    FROM news-game
    JOIN video ON news-game.id = video.id
    JOIN it-news ON news-game.id = it-news.id
    JOIN game-translate ON news-game.id = game-translate.id
    JOIN game-review ON news-game.id = game-review.id


    بازم نشد هر جوری کد میزنم
    رایطه رو نمیدونم چطوری بفهمم با خود phpmyadmin ساختم

  5. #5

    نقل قول: اتصال 5 جدول در یک select

    روز بخیر

    ابتدا به دلیل استفاده از خط تیره باید نام جداول را در بین علامت ‍`` قرار دهید مانند:


    select `news-game`.title from `news-game``

  6. #6
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: اتصال 5 جدول در یک select

    نام جداول رو دستمون گفت مشکلش چیه در کل برای نام جداول و لینک ها از - استفاده نکن
    در کنار این فکر میکنم جوین هات هم اشتباه باشن
    JOIN video ON news-game.id = video.id

    شما تو تیبل video باید یه کلید خارجی داشته باشی که این تیبل رو وصل کنه به تیبل news-game یه چیزی مثل new_game_id
    شما داری تو تا تیبل رو از طریق فیلد id به هم متصل میکنی که اشتباهه و id آین دو تیبل هیچ ربطی به هم ندارن

  7. #7

    نقل قول: اتصال 5 جدول در یک select

    فکر کنم بازم غلطه اما از سایت زیر پیدا کردمش
    http://pvlearn.com/product/%d8%af%d8...f%d8%b1-mysql/

    فکر کنم خوب عمل کنه

    SELECT `news-game`.`title`, `news-game`.`date`,`news-game`.`message`,
    `video`.`title`, `video`.`date`, `video`.`message`,
    `it-news`.`title`, `it-news`.`date`, `it-news`.`message`,
    `game-translate`.`title`,`game-translate`.`date`,`game-translate`.`message`,
    `game-review`.`title`,`game-review`.`date`,`game-review`.`message`
    FROM `news-game`,`video`,`it-news`,`game-translate`,`game-review`

  8. #8
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: اتصال 5 جدول در یک select

    میخای همه گیم ها با همه ویدئو ها رو بخونی از دیتابیس
    یا یک گیم خاص با آیدی مشخص رو بخونی با ویدئو های مربوط به اون گیم
    بجای اینکه کد کپی کنی از سایتی و متوجه نشی چی به چیه , راجب کلید خارجی و اینکه چجوری 2 تاتیبل رو به هم متصل میکنن بخون بعد یه join ساده بزن رو 2 تا تیبل تا دستت بیاد چجوری کار میکنه
    بعد میتونی کدای پیچیده تر بزنی

  9. #9

    نقل قول: اتصال 5 جدول در یک select

    این کدرو از روی youtube یاد گرفتم اما خالی پاس میده و فقط یکی از جدول ها خالیه بقیه پر هستش

    SELECT `video`.`title`,`video`.`date`,`video`.`message`,
    `news-game`.`title`,`news-game`.`date`,`news-game`.`message`,
    `it-news`.`title`,`it-news`.`date`,`it-news`.`message`,
    `game-translate`.`title`,`game-translate`.`date`,`game-translate`.`message`,
    `game-review`.`title`,`game-review`.`date`,`game-review`.`message`
    FROM `video`
    INNER JOIN `news-game` ON `video`.`id` = `news-game`.`id`
    INNER JOIN `it-news` ON `video`.`id` = `it-news`.`id`
    INNER JOIN `game-translate` ON `video`.`id` = `game-translate`.`id`
    INNER JOIN `game-review` ON `video`.`id` = `game-review`.`id`
    ORDER BY `video`.`id`


    اینم از عکس

  10. #10
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: اتصال 5 جدول در یک select

    باید کلید خارجی join کنی


    `video`.`id` = `news-game`.`id`


    video.id کلید خارجی نیست


    احساس میکنم دارم با خودم حرف میزنم : ))

  11. #11

    نقل قول: اتصال 5 جدول در یک select

    نقل قول نوشته شده توسط plague مشاهده تاپیک
    باید کلید خارجی join کنی


    `video`.`id` = `news-game`.`id`


    video.id کلید خارجی نیست


    احساس میکنم دارم با خودم حرف میزنم : ))
    دوست عزیز
    ممنون بابت کمک اما مشکل اینه خالی خروجی میده با اینکه جدول پره

  12. #12
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: اتصال 5 جدول در یک select

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

    وقتی 2 تا تیبل به هم ربط دارن باید یک فیلد مشترک داشته باشن که مقدارشون توی 2 تا تیبل یکی باشه

    مثلا 2 تا تیبل داری پدر و پسر

    فیلد هاشون میشه

    پدر : شناسه (id), نام (name) , شغل (job)
    پسر : شناسه(id) , شناسه پدر (father_id) , نام (name) , شغل (job)

    اگه دقت کنی تو تیبل پسر یک فیلد هست به اسم شناسه پدر که از روی این میشه فهمید که هر پسر برای کدوم پدر هست

    مثلا داده های تو تیبل ها اینجوری میشه

    پدر : 6 , احمد , نجار
    پسر : 1 , 6 , رضا , خیاط

    به عبارت دیگه

    پدر . شناسه = پسر . شناسه پدر -> هردو 6 هست تو مثالی که زدم

    به این میگن کلید خارجی ... شما وقتی میخای جوین کنی باید کلید خارجی داشته باشی توی 2 تا تیبلی که میخای جوین کنی تا دیتبایس بتونه این دو رو بهم ربط بده

    اینجوری میشه جوین


    SELECT father.name , son.name FROM father
    JOIN son ON father.id = son.father_id




    شما اگه کلید خارجی نداشته باشی تو تیبل هات دیتبایس نمیتونه این دو رو به هم ربط بده و در نتیجه خروجی خالی برمیگردونه

  13. #13

    نقل قول: اتصال 5 جدول در یک select

    ببخشید دوباره بالا اورم
    من کدش رو درست کردم و توی mysql workbench درست و شیک کار میکنه و عالی و عالی
    اما توی php خیر ایندفعه کد php رو مشکل دارم
    اینم عکس


    اینم خود کدش

    $query = "select
    `news-game`.`title`,
    `video`.`title`,
    `it-news`.`title`,
    `game-translate`.`title`,
    `game-review`.`title`
    from `news-game`
    join `video` on `news-game`.`id` = `video`.`id`
    join `it-news` on `news-game`.`id` = `it-news`.`id`
    join `game-translate` on `news-game`.`id` = `game-translate`.`id`
    join `game-review` on `news-game`.`id` = `game-review`.`id`
    ORDER by `news-game`.`id`";

    if($stmt = $conn->query($query))
    {
    while($row = $stmt->fetch_assoc())
    {
    foreach($stmt as $row)
    {
    ?>
    <tr>
    <td><a href="" class="text-danger"><?php echo $row["title"]; ?></a></td>
    </tr>
    <?php } } } ?>
    </table>
    </nav>

  14. #14
    کاربر دائمی آواتار mortezagt
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    بوشهر
    پست
    381

    نقل قول: اتصال 5 جدول در یک select

    همینو صاف کپی کن


    $query = "select
    ng.title,
    video.title,
    itnews.title,
    gt.title,
    gr.title
    from `news-game` AS ng,
    video AS video,
    `it-news` AS itnews,
    `game-translate` AS gt,
    `game-review` AS gr
    WHERE ng.id=video.id AND
    ng.id=itnews.id AND
    ng.id=gt.id AND
    ng.id=gr.id
    ORDER BY ng.id";

تاپیک های مشابه

  1. Update کردن رکورد هایی که تصادفی Select شده اند
    نوشته شده توسط aliblue در بخش T-SQL
    پاسخ: 4
    آخرین پست: پنج شنبه 27 تیر 1392, 11:42 صبح
  2. select تصادفی
    نوشته شده توسط mehdi5106 در بخش SQL Server
    پاسخ: 6
    آخرین پست: یک شنبه 19 اردیبهشت 1389, 15:15 عصر
  3. سوال: افزایش سرعت اجرای SELECT بصورت تصادفی (Random)
    نوشته شده توسط Jason.Bourne در بخش MySQL
    پاسخ: 3
    آخرین پست: پنج شنبه 19 فروردین 1389, 17:07 عصر
  4. سوال: چطور میتونیم ، یک select تصادفی بنویسیم؟
    نوشته شده توسط milad.biroonvand در بخش VB.NET
    پاسخ: 2
    آخرین پست: سه شنبه 25 اسفند 1388, 08:10 صبح
  5. انتخاب تصادفي از نتايج select در سي شارپ
    نوشته شده توسط alinaghiha در بخش C#‎‎
    پاسخ: 3
    آخرین پست: پنج شنبه 26 آذر 1388, 08:43 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •