Столкнулся с такой проблемой: Есть таблица с заказами. Среди прочих данных в строке с заказом присутствуют поля "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 Наставьте на путь истинный плиз!
[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]
Блин, прикольно! Что-то как-то даже и не догадался что можно одну и ту же таблицу приклеивать несколько раз. Спасибо тебе дружище!