Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Здравствуйте, уважаемые форумчане. Столкнулся с такой вот проблемой при разработке БД. Имеется одна дочерняя таблица Orders в которую сливаются все данные из 10 родительских таблиц (например таблица с размерами Sizes). Сложности возникли при попытке объединения таблиц. Мне необходимо вывести все данные из таблицы Orders. Так как в дочерней таблице представлены внешние ключи , а мне нужно их значение из родительской таблицы я применяю
Неактивен
Вместо * явно указать нужные вам поля. Так кстати, лучше делать всегда.
SELECT ..., s.SizeID as SizeLEFT, ...
Неактивен
Ну по поводу указывания нужных полей в запросе, это ясное дело :-), я для экономии места просто поставил *. Хотя теперь понимаю что меня интересует вопрос по поводу того какие столбцы указывать в операторе SELECT. vasya, спасибо что откликнулись, но я всеравно не понял как объединить таблицы((.
Отредактированно Dmitriy88 (22.03.2013 14:18:59)
Неактивен
select s.SizeValue as SizeLEFT from Orders AS o JOIN Sizes AS s ON o.SizeLEFT=s.SizeID AND o.SizeRIGHT=s.SizeID;
Неактивен
Спасибо огромное, это помогло!)) Но теперь новая неувязка, если например SizeLEFT SizeRIGHT равны, содержат одно и тоже число (точнее один и тот же внешний ключ) то результат выводится, но если они не равны и в каждой разный ключ, то никакого результата не будет (Empty set), хотя в таблице Orders запись есть, к примеру такая:
Отредактированно Dmitriy88 (22.03.2013 17:27:54)
Неактивен
Вместо
FROM Orders AS o INNER JOIN Sizes AS s ON o.SizeLEFT=s.SizeID AND o.SizeRIGHT=s.SizeID
нужно
... FROM Orders AS o INNER JOIN Sizes AS s ON o.SizeLEFT=s.SizeID JOIN Size s1 ON o.SizeRIGHT=s1.SizeID ...
Посмотрите http://sqlinfo.ru/forum/viewtopic.php?id=3210
Неактивен
Премного благодарен!)) Спасибо, vasya
Неактивен
Страниц: 1