Выборка из БД

В наличии:
   close;
        SQL.Clear;
      SQL.Add('SELECT ');
      SQL.Add(' u.IdUser AS [IDuser], ');
      SQL.Add(' u.UPass  AS [Пароль], ');
      SQL.Add(' u.Ufio  AS [ФИО], ');
     // SQL.Add('   sl.UserGroupRang AS [ЮзерРанг], ');
      SQL.Add(' u.IdUserGroup_ref AS [ЮзерГруппа] ');
      SQL.Add('FROM UserGroup sl ');
      SQL.Add('Inner JOIN UserL u ON  U.IdUserGroup_ref = s1.IDUserGroup ');
   
       SQL.Add(' WHERE u.ULogin=:ULogin ');
       SQL.Add(' ORDER BY u.IdUser');
 
     Parameters.ParamByName('ULogin').Value:=Blogin.text;
Две таблицыUserL IDUser | ULogin | UPass | UFIO | IDUserGroup_RefUserGroup IDUserGroup | UserGroupName| UserGroupRang --------------------------------------------------------------- Бьет ошибку "Ошибка в синтаксисе операции JOIN" Если убрать убрать "Inner" то ошибка становится в "From"Где не прав:?Если сделать
 SQL.Add('FROM UserGroup ');
      SQL.Add('Inner JOIN UserL u ON  IDUserGroup = U.IdUserGroup_ref  ');
то бьет "Не поддерживается выражение обьединения"База данных Accessна всякий случай переименовал группы добавив буквы L Немного изменил буквы в запросе. И оно заработало.Что стало:
     SQL.Add('FROM UserLGroup ug');
      SQL.Add('INNER JOIN UserL ul ON  ug.IDUserLGroup = ul.IDUserLGroup_ref');
Все же интересно - что ему не нравилось.
6 ответов

Ошибка была в синтаксисе JOIN тут псевдоним
FROM UserGroup sl
а тут уже почему-то
s1.IDUserGroup
Т.е. S1 и SL - это разные псевдонимы


drvolodko, Согласен. Спасибо. А во втором случае почему ошибка обьединения? (сообщение там же)
 SQL.Add('FROM UserGroup ');
      SQL.Add('Inner JOIN UserL u ON  IDUserGroup = U.IdUserGroup_ref  ');


ON *IDUserGroup
а имя псевдонима где тут?


drvolodko, А оно надо, если мы не дает псевдоимени первой таблицы?


если не даете, тогда нужно ее писать полностью


qwertehok, drvolodko, Понял. Спасибо.