За последние 24 часа нас посетили 17744 программиста и 1718 роботов. Сейчас ищут 968 программистов ...

Как связать 2 таблицы?

Тема в разделе "PHP для новичков", создана пользователем kikosik, 2 июн 2017.

  1. kikosik

    kikosik Активный пользователь

    С нами с:
    13 апр 2017
    Сообщения:
    60
    Симпатии:
    0
    Ребята помогите))

    Есть 2 таблицы, в одном хранятся имена продуктов, а на другой таблице имена этих продуктов и другие данные(цена, сорт...).

    Таблица 1 - ID=1, name=product1 - ID=2, name=product2
    Таблица 2 - ID=1, name=product1, sort=sortik1, price=500 - ID=2, name=product2, sort=sortik2, price=660 - ID=3, name=product3, sort=sortik3, price=630 - ID=4, name=product1, sort=sortik1, price=660


    Нужна на браузере получить все виды продуктов(100 штук в базе) из Таблица1 и другие данные про этот продукт из Таблица2. Тоесть чтобы он искал во второй Таблице2 по имени продукта(таблица1) и соответственные данные показал в браузере.

    Дело в том что Таблице2 может содержать несколько product1, 10 product2 и т.л. Я хочу взять из Таблицы2 только последнюю добавленную строку про каждый продукт.

    Как там связат таблицы не получается у меня

    Заранее спасибо
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    JOIN. Только лучше не по имени, а по ID товара
     
  3. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    А зачем в данном случае две таблицы?
     
  4. kikosik

    kikosik Активный пользователь

    С нами с:
    13 апр 2017
    Сообщения:
    60
    Симпатии:
    0
    А как еще можно сделать. В таблица2 каждый день добавляют продукты, а в Таблица1 хранятся имена продуктов
     
  5. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Да, пожалуй правильно. Я не внимательно взглянул.
    Тогда, соединение таблиц по равенству.
    ордер би должен помочь.

    http://sqlfiddle.com/ попробуй тут воспроизвести все описанное выше шанс что помогут увеличится.

    И да, верное замечание, тебе надо структуру своих таблиц сменить. Нужно чтобы во второй таблице хранился id имени продукта а не само имя. Или заведи еще одну таблицу, куда будешь класть id продукта и id его мени.
     
  6. kikosik

    kikosik Активный пользователь

    С нами с:
    13 апр 2017
    Сообщения:
    60
    Симпатии:
    0
    А как получить продукт по по дате(последняя добавленая)
    --- Добавлено ---
    ?
     
  7. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
  8. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    @kikosik, если у тебя будет примерно такая структура таблиц
    [​IMG]
    то запрос будет таким
    Код (Text):
    1. SELECT
    2.   `tbl2`.`id`,
    3.   `tbl1`.`name`,
    4.   `tbl2`.`sort`,
    5.   `tbl2`.`price`
    6. FROM
    7.   `tbl1`,
    8.   `tbl2`
    9. WHERE
    10.   `tbl2`.`name_id` = 1
    11. ORDER BY
    12.   `tbl2`.`id`
    13. DESC
    14. LIMIT 1