За последние 24 часа нас посетили 15302 программиста и 1633 робота. Сейчас ищут 967 программистов ...

Помогите с запросом к MySQL

Тема в разделе "PHP для новичков", создана пользователем Oracool, 24 мар 2010.

  1. Oracool

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

    С нами с:
    4 мар 2010
    Сообщения:
    29
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Столкнулся с такой проблемой:

    Есть таблица с заказами. Среди прочих данных в строке с заказом присутствуют поля "supplier1", "supplier2" и "supplier3". В этих полях идут ID-номера людей, которые и исполняют заказ. Заказ может быть исполнен как одним человеком, так и всеми тремя сразу а может и один человек выступить в роли всех троих. Ну тут собственно пока ничего необычного вроде нету. Есть соответственно таблица с этими исполнителями (телефоны, адреса, явки, пароли и т.д.).

    Нужно вывести все заказы в табличнй форме и вместо каждого ID исполнителя подставить его имя. В случае с одним исполнителем проблем нет LEFT JOIN ON одно=другому и вперед. Но вот как быть в случае с двумя или более исполнителями ума не приложу. Умом то понимаю что запрос должен вернуть три имени вместо трех ID, но вот как реализовать...

    SELECT s.name, o.id, o.date, ...... FROM orders AS o LEFT JOIN suppliers AS s ON o.supplier=s.id

    Наставьте на путь истинный плиз!
     
  2. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
  3. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    [sql]select t1.*, t2.name, t3.name, t4.name
    from table1 t1
    left join table2 t2 on t1.id=t2.id1
    left join table2 t3 on t1.id=t3.id2
    left join table2 t4 on t1.id=t4.id3[/sql]
     
  4. Oracool

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

    С нами с:
    4 мар 2010
    Сообщения:
    29
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Блин, прикольно! Что-то как-то даже и не догадался что можно одну и ту же таблицу приклеивать несколько раз.

    Спасибо тебе дружище!