Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: sql-запрос с join'ами
Показать сообщение отдельно

Аватара для M1sha

Старожил


Сообщения: 164
Благодарности: 16

Профиль | Отправить PM | Цитировать


Хорошо, сейчас постараюсь раскрыть более подробно.

Возьмем такую базу:




5 таблиц, 4 связи.

Теперь о программе..пользваотель запустил программу, выбрал нужные ему поля из разных таблиц и получил форма для просмотра данных.

Допустим пользователь выбрал следующие поля:

AUTO.REG_NOMER, AUTO.ID_COLOUR, COLOUR.COLOUR, VLAD.FAM, VLAD.NAME

Дальше в программе анализирую с одной или с несколькими таблицами работает пользователь, после начинаю формировать sql-запрос.

Из системной таблице беру информацию о том как связаны между собой таблицы..вот её фрагмент:




Дальше начинаю формировать sql-запрос. В данной ситуации получается следующий:

SELECT AUTO.REG_NOMER, AUTO.ID_COLOUR, COLOUR.COLOUR, VLAD.FAM, VLAD.NAME FROM COLOUR INNER JOIN AUTO ON COLOUR.ID_COLOUR=AUTO.ID_COLOUR INNER JOIN VLAD ON VLAD.ID_VLAD=AUTO.ID_VLAD

+ еще сортировку добавляю, но сейчас ее опустим, с ней все просто..

Теперь проблема. Проблема у меня со второй частью запроса, то есть то, что идет после FROM. Конечно в ряде случаев она генерируется удачно, но не во всех. Поэтому хочу спросить следующее:

Есть ли какие-то строгие правила формирования таких запросов..ну что первым указывать, а что вторым?
Может где-то можно найти примерный алгорит решения это задачи? может кто встречал?

По поводу диалекта SQL не знаю что сказать. Я с ним работаю впервые и пока тяжело воспринимаю. Хочется начать с нуля..с простых вещей, все расмотреть, разобрать, но сейчас поджимает время и мою программу надо привести в рабочий вид, поэтому обращаюсь к вам.

Отправлено: 18:35, 24-08-2009 | #3

Название темы: sql-запрос с join'ами