powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с SELECT SQL
4 сообщений из 4, страница 1 из 1
Помогите с SELECT SQL
    #33846364
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Итак есть 3 базы
1) JudgeCaseTypes, поля в нем:
CaseType
2) CaseTypes, поля в нем:
code (значение из которого ставилось в JudgeCaseTypes.CaseType)
Name
CategCode
3) CaseCategories, поля в нем:
code (значение из которого ставилось в CaseTypes.CategCode)
CharCode

Нужно такой SELECT чтобы он выбрал из базы JudgeCaseTypes все записи, +по соответствию поля JudgeCaseTypes.CaseType=CaseTypes.code выбрать в этот селект поле Name из CaseTypes, И!!! по соответствию значения уже CaseTypes.CategCode=CaseCategories.code выбрать туда же поле CharCode из базы CaseCategories

Так я делал и оно не работает - выбирает 0 записей:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
SELECT ;
   JudgeCaseTypes.CaseType,;
   CaseTypes.Name as CaseTypeName,;
   CaseTypes.CategCode as CategCode,;
CaseCategories.CharCode;
   FROM JudgeCaseTypes, CaseTypes, CaseCategories;
   WHERE JudgeCaseTypes.CaseType=CaseTypes.code AND CaseTypes.CategCode=CaseCategories.Code;
   INTO CURSOR curJudgeCaseTypes

SELECT ;
   JudgeCaseTypes.CaseType,;
   CaseTypes.Name as CaseTypeName,;
   CaseTypes.CategCode as CategCode;
   FROM JudgeCaseTypes, CaseTypes;
   INNER JOIN CaseCategories ON CaseCategories.code=CaseTypes.CategCode;
   WHERE JudgeCaseTypes.CaseType=CaseTypes.code;
   INTO CURSOR curJudgeCaseTypes

Так записи выбирает как положено, но нет в результирующей выборке необходимого CaseCategories.CharCode
Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT ;
   JudgeCaseTypes.CaseType,;
   CaseTypes.Name as CaseTypeName,;
   CaseTypes.CategCode as CategCharCode;
   FROM JudgeCaseTypes, CaseTypes;
   WHERE JudgeCaseTypes.CaseType=CaseTypes.code ;
   INTO CURSOR curJudgeCaseTypes

Или тут только 2 SELECT-а помогут?

VFox.9
...
Рейтинг: 0 / 0
Помогите с SELECT SQL
    #33846493
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi CTAC-KO!

Тут замечательно помогло бы чтение хелпа.

SELECT ;
JudgeCaseTypes.CaseType, ;
CaseTypes.Name as CaseTypeName, ;
CaseTypes.CategCode as CategCode, ;
CaseCategories.CharCode ;
FROM JudgeCaseTypes ;
INNER JOIN CaseTypes ;
ON CaseTypes.code = JudgeCaseTypes.CaseType ;
INNER JOIN CaseCategories ;
ON CaseCategories.Code = CaseTypes.CategCode
INTO CURSOR curJudgeCaseTypes

Впрочем твой первый запрос тоже должен работать - возможно что поля всё-же
не "одинаковы" - это бывает, если поля символьные и ввод идёт "руками" а не
через формы где предоставляется выбор через комбо или иные средства...
Также возможно (хотя и маловероятно) что накрылись индексы (тогда запросы
могут отрабатывать некорректно) - т.е. прежде всего переиндексируф таблицы.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Помогите с SELECT SQL
    #33847010
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо - предложенной строкой все выбирается как положено.

По поводу INNER JOIN - я хелп читал, но врубиться так и не смог ЧТО и КАК оно делает. Т.е. вот я во втором примере втулил INNER JOIN - но без результата. Опять же я в случае со своим INNER JOIN еще впаял WHERE JudgeCaseTypes.CaseType=CaseTypes.code относительно баз JudgeCaseTypes и CaseTypes, чего, я так понял, делать не следовало... И уж тем более мне не вдомек
почему нужны 2 INNER JOIN-а и при этом все выбрается так, как если бы присутствовало условие WHERE JudgeCaseTypes.CaseType=CaseTypes.code...

По поводу ввода ручками - нет, все выставляется через формы с помощью комбо и поля одинаковые в обоих базах, а вообще, говоря именно о CaseTypes.CategCode, то его вставляет прога беря соотв. значение из CaseCategories.Code, что незаметно для юзера вообще, а CaseCategories.Code - это Integer AutoIncrement и CaseTypes.CategCode это просто Integer. Индексов нету вообще ни у одной базы.
...
Рейтинг: 0 / 0
Помогите с SELECT SQL
    #33852616
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi CTAC-KO!

> По поводу INNER JOIN - я хелп читал, но врубиться так и не смог ЧТО и КАК
> оно делает.

Попробуй поискать книжку Дейта по основам реляционных СУБД - IMHO очень
доступно описаны даже самые сложные вопросы.
Ну или просто на этом сайте почитай материалы по SQL - эта часть (JOIN) не
"уникальна" для фокса - это общий синтаксис множества СУБД.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с SELECT SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]