Задавайте вопросы, мы ответим
Вы не зашли.
Имеется таблица, в которой поля указывают на значения полей из других таблиц. Грубо говоря, так:
Table1 (int field1, int field2, int field3)
Table2 (int id2, varchar caption2)
Table3 (int id3, varchar caption3)
Table4 (int id4, varchar caption4)
Необходим запрос, который бы вывел таблицу со следующими полями: field1, caption2, caption3
на примере ето выглядит так:
Table1:
<1><1><1>
<2><2><3>
Table2:
<1><раз>
<2><два>
Table3:
<1><raz>
<2><dva>
<3><tri>
Запрос выводит:
<1><раз><raz>
<2><два><tri>
В общем, проблема не сколько в составлении такого запроса, сколько в том, что от поля field1 зависит, из какой таблицы будет браться третье поле запроса. То есть, если field1 равно 1 или 2, то третье поле в запросе будет выводить caption3, а вот если field1 = 4, то третье поле запроса должно выводить caption4.
Извиняюсь за непрофессиональный язык. Я вроде SQL знаю, но объясняю плохо...
Надеюсь на помощь
Неактивен
Неактивен
vasya, спасибо огромное! Ето то, что мне и надо
Один вопрос для уточнения, можно ли вынести каким-то образом за пределы UNION общие для двух запросов поля?
У меня в обоих select'ах по 10 полей, а разница в них всего лиш в одном поле, и поетому общий запрос довольно сильно вырастает в длину.
Неактивен
Можно всё! Но вот нужно ли?
Длина запроса не самый важный параметр. Но если вы считаете, что приведенная ниже конструкция будет работать быстрее (или также как изначальный запрос) и более удобна для разработчиков (например, интуитивно понятна или удовлетворяет их эстетическим чувствам), чем повторное перечисление 9ти полей, то
Неактивен
Ладно, в принципе приложение небольшое, а разработчики могут быть и после меня. Пусть остаётся первый вариант.
Спасибо!
Неактивен