|
Присоединить две таблицы
|
|||
---|---|---|---|
#18+
У меня есть две таблицы в Foxpro 2.6 в первой одно поле tab_nom C(4) строк 10 и во второй таблице поле fio C(20) 15 строк. Как к первой таблице справа присоединить вторую таблицу ( чтоб в общей таблице в поле tab_nom после 10 строки были пустые значения) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2014, 19:17 |
|
Присоединить две таблицы
|
|||
---|---|---|---|
#18+
Лучше приведите пример того, как должна выглядеть результирующая выборка (картинку нарисуйте). Фраза "присоединить справа" и "после 10" противоречат друг другу. Вот решение для "после 10" Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2014, 20:10 |
|
Присоединить две таблицы
|
|||
---|---|---|---|
#18+
Tаb_nom 1. 0001 2. 1051 ... ... 10. 2111 Fio 1. Петров 2. Иванов ... ... 15. Сидоров Таблица, которая должна получиться: Tаb_nom Fio 1. 0001 Петров 2. 1051 Иванов ... ... 10. 2111 фамилия 11. Фамилия .... 15. Сидоров ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2014, 22:04 |
|
Присоединить две таблицы
|
|||
---|---|---|---|
#18+
Так не пойдет. По каким правилам сопоставлять записи. Вот на каком основании табельному номеру 0001 должна соответствовать фамилия "Петров", а табельному номеру 1051 фамилия "Иванов"? У Вас либо в таблице tab_nom должна быть ссылка на запись таблицы Fio, либо наоборот, в таблице Fio должна быть ссылка на запись таблицы Tab_nom В общем случае, поскольку в FP2.6 еще не было Join, то задача решается двумя запросами объединенными через UNION. В справке по команде Select-SQL в FP2.6 есть такой пример Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Вот примерно такой запрос и надо сделать, немного доработав его под свои нужды. Запрос до UNION - это те записи у которых для tab_nom есть соответствующие fio, а запрос после UNION - это те fio для которых нет tab_nom. А вот по какому полю искать соответствие - это уже Вам виднее ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2014, 01:26 |
|
Присоединить две таблицы
|
|||
---|---|---|---|
#18+
ВладимирМ, мне нужно присоединить поля из двух таблиц по соответствию номеров строк и только. Данная таблица показана мною для примера, на самом деле смысла не имеет. Напишите пожалуйста как выглядит такой запрос с Join в VFP, и что такое customеr.cno - это номер записи rесno? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2014, 11:51 |
|
Присоединить две таблицы
|
|||
---|---|---|---|
#18+
Елена Пантера, При Select'e Recno не используется. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2014, 18:52 |
|
Присоединить две таблицы
|
|||
---|---|---|---|
#18+
Елена ПантераВладимирМ, мне нужно присоединить поля из двух таблиц по соответствию номеров строк и только. Данная таблица показана мною для примера, на самом деле смысла не имеет. Напишите пожалуйста как выглядит такой запрос с Join в VFP, и что такое customеr.cno - это номер записи rесno? Я так понимаю, что термины "первичный ключ" (Primary Key) и "внешний ключ" (Foreign Key) Вы воспринимаете как некое злое "колдунство" или грязные ругательства Если Вы хотите (или вынуждены) и дальше заниматься программированием в среде реляционных баз данных, то запишитесь на какие-нибудь простейшие курсы по команде Select-SQL (ну, или книжку купите. Можно из самых дешевых). Даже если это будут курсы совсем "для чайников" и там не будут давать теорию, то уж с практической точки зрения необходимость связи между таблицами обязательно покажут. Вкратце. Некоторые "аксиомы" Физический номер записи (то, что возвращает Recno()) не есть нечто фиксированное. Это результат некоторого расчета. Как следствие, идентификатором записи может являться лишь условно. В том смысле, что это значение останется не изменным только при выполнении ряда условий. В командах Select-SQL использовать эту функцию крайне не желательно, поскольку выполнение этих условий внутри команды Select-SQL становится проблематичным, как следствие, теряется возможность идентификации записей. FP2.x и Visual FoxPro - это РАЗНЫЕ языки программирования. Не обманывайтесь внешним сходством и общими командами. Разные они прежде всего в самом подходе в работе с данными. Для Visual FoxPro (особенно для 9 версии) - синтаксис команды Select-SQL настолько широк, что позволяет использовать ее как основной инструмент по работе с данными Для FP2.x синтаксис команды Select-SQL откровенно слаб. Это является одной из причин того, что команда Select-SQL в FP2.x выполняет второстепенную, вспомогательную роль. Основную роль играют "навигационные" команды и SET RELATION + SET SKIP TO Из всего этого следует тот факт, что, во-первых, без "извратов" объединить таблицы по их физическому номеру записи - невозможно. В рамках одной команды Select-SQL еще можно "извратится" в VFP9, но для FP2.x потребуется несколько последовательных запросов, что не всегда возможно в силу ограниченности количества одновременно открытых рабочих областей (до 25 в стандартной версии и до 225 в расширенной) Для FP2.x стандартным приемом является сканирование таблиц-источников и последовательное (построчное) наполнение предварительно созданной временной таблицы (курсора). Примерно так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35.
Ну, и под конец. Вы задали вопрос не о том, как решить Вашу задачу, а о том, как решить Вашу задачу придуманным Вами же способом. Ни за что не поверю, что между таблицами с табельными номерами и фамилиями нет связи по типу PK-FK. Это значит, что Вы начали решать задачу придуманным Вами способом, но на некотором этапе зашли в тупик. И вместо того, чтобы предположить, что сам способ решения не корректен, Вы пытаетесь придумать пути обхода "тупика", создавая себе дополнительные трудности, чтобы потом их героически преодолевать ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2014, 20:15 |
|
Присоединить две таблицы
|
|||
---|---|---|---|
#18+
ВладимирМ, Я бы с удовольствием записалась на курсы, но у нас в Ташкенте(Узбекистане) нет курсов по foxpro и книги тоже не продаются. В интернете нахожу материал по фоксу, но там нет примеров использования функций, только синтаксис. Посоветуйте самую хорошую книгу по Fox2х и книгу по VFP, где подробно все написано, может получится заказать. А по поводу этой задачи я ее могу решить более долгим способом, просто думала что можно одним запросом и поэтому спросила. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2014, 19:58 |
|
Присоединить две таблицы
|
|||
---|---|---|---|
#18+
Елена Пантера, и в гугле забанили? https://www.google.ru/search?client=opera&q=книга vfp&sourceid=opera&ie=utf-8&oe=utf-8&channel=suggest#channel=suggest&newwindow=1&q=Книги по Visual FoxPro ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2014, 20:29 |
|
Присоединить две таблицы
|
|||
---|---|---|---|
#18+
alextashk, в гугле искала, там есть книга по VFP9 автор Лебедев, и вторая книга Гурвиц.) Стоит ли скачивать? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2014, 07:19 |
|
Присоединить две таблицы
|
|||
---|---|---|---|
#18+
Елена Пантера, у вас же фокс2.6, зачем вам (сейчас) книги по вфп? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2014, 07:59 |
|
Присоединить две таблицы
|
|||
---|---|---|---|
#18+
tanglir, мне нужно и то и другое.)) Не подскажете где можно найти информацию или электронную книгу как в Foxpro 2.6 создать программу в разными меню вкладками и т.п.,чтоб было описано на каком-нибудь примере?! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2014, 12:25 |
|
Присоединить две таблицы
|
|||
---|---|---|---|
#18+
Елена Пантера, http://www.sql.ru/forum/40178/gde-dostat-uchebnik-ili-help-po-foxpro-2-6 ИЧСХ, последняя ссылка до сих пор вроде жива ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2014, 13:50 |
|
Присоединить две таблицы
|
|||
---|---|---|---|
#18+
Елена ПантераВладимирМ, Я бы с удовольствием записалась на курсы, но у нас в Ташкенте(Узбекистане) нет курсов по foxpro и книги тоже не продаются. В интернете нахожу материал по фоксу, но там нет примеров использования функций, только синтаксис. Посоветуйте самую хорошую книгу по Fox2х и книгу по VFP, где подробно все написано, может получится заказать. А по поводу этой задачи я ее могу решить более долгим способом, просто думала что можно одним запросом и поэтому спросила. Я говорил о книгах не по FoxPro, а про книги по одной единственной команде Select-SQL. У Вас проблемы с пониманием того, как и для чего создаются таблицы. В смысле, какая структура (содержание) таблиц должна быть. Нет, в принципе, можно, конечно, и книги почитать по теории реляционных баз данных, только вот, они практически бесполезны. Слишком сложно соотнести изложенную в них теорию с тем, что реально есть в конкретном языке программирования. Да и терминология разная, что сильно сбивает с толку. Поэтому, как мне кажется, тут проще понять на практике, какие запросы делаются и что для этих запросов требуется. А насчет книг по FoxPro, почитать, конечно, можно, только опять же, это почти бесполезное занятие. Ну, не учат такие книги программированию. Как правило, это банальный пересказ Help своими словами. Просто разные книги разные разделы Help пересказывают Ну, если очень хочется, то По FoxPro 2.x - Попов А.А. Создание приложений для FoxPro 2.5/2.6 в DOS и Windows. По ней есть много разных ссылок. Ну, например, здесь http://fox-populi.com/books.htm По VFP9 - http://www.foxclub.ru/vfpbook/ ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2014, 00:58 |
|
|
start [/forum/topic.php?fid=41&tid=1582703]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
94ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 193ms |
0 / 0 |