powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Объединить данные двух таблиц
25 сообщений из 40, страница 1 из 2
Объединить данные двух таблиц
    #39369947
Rphoenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.
Взялся работать с базой (всего-лишь неделю назад в выходные изучил SQL).
Стоит Firebird 2.5 с Delphi. Используется для статистики.
Дело в том, что используется почти две одинаковые таблицы "SPISOK_AMB" и "SPISOK". В первую вносятся все пациенты, а во вторую вносятся только госпитализированы из них. Но так ведь не должно быть, т.е. достаточно одного поля в таблице "Список", которое определяет, что пациент госпитализирован. Пытался объединить данные через "Union", но заметил, что наименование полей разные, например, "FAMILY" и "FAMILY_AMB". Переименовать не дает, выводит:
"This operation is not defined for system tables.
unsuccessful metadata update.
Column NOMIB_AMB from table SPISOK_AMB_COPY is referenced in SPISOK_AMB_COPY_EXC1."


Как объединить?

С уважением, Rphoenix.
...
Рейтинг: 0 / 0
Объединить данные двух таблиц
    #39369957
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Rphoenix!
You wrote on 19 декабря 2016 г. 11:58:45:

Rphoenix> Как объединить?зачем?
у тебя в первой таблице и так есть ВСЕ
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Объединить данные двух таблиц
    #39369970
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rphoenix, нафига UNION? Здесь либо LEFT, либо INNER JOIN, в зависимости от набора полей таблиц и от того, что ты хочешь, в конечном итоге, получить.
...
Рейтинг: 0 / 0
Объединить данные двух таблиц
    #39369979
Rphoenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МимопроходящийHello, Rphoenix!
You wrote on 19 декабря 2016 г. 11:58:45:

Rphoenix> Как объединить?зачем?
у тебя в первой таблице и так есть ВСЕ

Нет, во второй указывается случай госпитализации (дополнительные поля).
...
Рейтинг: 0 / 0
Объединить данные двух таблиц
    #39369986
Rphoenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev, я хочу получить одну таблицу без повторений, с данными пациентов (первая таблица) и с историей госпитализации (вторая таблица; если есть).
Пробовал "FULL OUTER JOIN", но получается два поля "Family" и "Family_amb" у одного и того-же человека в строке (т.е. повторяются). Попробовать запрос с параметром?
...
Рейтинг: 0 / 0
Объединить данные двух таблиц
    #39369992
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rphoenix, проблема заменить * на список нужных полей?
...
Рейтинг: 0 / 0
Объединить данные двух таблиц
    #39369999
Rphoenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devRphoenix, проблема заменить * на список нужных полей?
Код: sql
1.
2.
3.
4.
5.
6.
SELECT *
FROM
  spisok
  FULL OUTER JOIN
  spisok_amb
    ON spisok.key_spisok = spisok_amb.key_spisok_amb


Так? Проблема в том, что ID не связаны внешними ключами.
...
Рейтинг: 0 / 0
Объединить данные двух таблиц
    #39370002
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Rphoenix!
You wrote on 19 декабря 2016 г. 12:23:40:

Rphoenix> Пробовал "FULL OUTER JOIN"видимо утверждение о том, что "на выходных изучил SQL"
слегка не соответствует действительности
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Объединить данные двух таблиц
    #39370012
Rphoenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МимопроходящийHello, Rphoenix!
You wrote on 19 декабря 2016 г. 12:23:40:

Rphoenix> Пробовал "FULL OUTER JOIN"видимо утверждение о том, что "на выходных изучил SQL"
слегка не соответствует действительности

Да да, что-то я ступил) конечно "LEFT OUTER JOIN". А как теперь выгрузить скрипт в таблицу?
...
Рейтинг: 0 / 0
Объединить данные двух таблиц
    #39370015
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

ну почему же вполне может соответствовать. Выучить SQL за выходные не возможно. Точнее синтаксис освоить можно, а вот понимать что и когда использовать это время нужно.
...
Рейтинг: 0 / 0
Объединить данные двух таблиц
    #39370018
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rphoenix"на выходных изучил начал изучать SQL"

правильней так
...
Рейтинг: 0 / 0
Объединить данные двух таблиц
    #39370027
Rphoenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема в том, что поля по другому названы в другой таблицы.
Их все самостоятельно присваивать?
...
Рейтинг: 0 / 0
Объединить данные двух таблиц
    #39370037
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rphoenix, здесь не преподают бесплатно теорию реляционных баз данных. Гугли теорию и формы нормализации.
...
Рейтинг: 0 / 0
Объединить данные двух таблиц
    #39370048
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rphoenixсамостоятельно присваивать?

Что делать ????
...
Рейтинг: 0 / 0
Объединить данные двух таблиц
    #39370051
Rphoenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch, в первой таблицы личные данные пациентов. Во второй таблицы личные данные + данные госпитализации.
Нужно объединить по личным данным в одну, но наименование полей во второй таблице другое.
Код: sql
1.
2.
3.
4.
5.
6.
SELECT *
FROM
  spisok_amb
  LEFT OUTER JOIN
  spisok
    ON spisok.nomib = spisok_amb.nomib_amb


Нужно, получается, и
Код: sql
1.
  ON spisok.name = spisok_amb.name_amb

.... и т.д.?
Присваивать каждое поле?
...
Рейтинг: 0 / 0
Объединить данные двух таблиц
    #39370057
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rphoenix,

подучи ка ты ещё SQL. И почитай про первичные ключи натуральные и искусственные, а так же про нормализацию таблиц.
...
Рейтинг: 0 / 0
Объединить данные двух таблиц
    #39370063
Rphoenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, т.е. деление должно быть, чтобы выполнялось условия нормальных форм? Или причем тут они?
...
Рейтинг: 0 / 0
Объединить данные двух таблиц
    #39370065
Rphoenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. должна быть одна таблица с личными данными, а вторая с историей болезни?
...
Рейтинг: 0 / 0
Объединить данные двух таблиц
    #39370069
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RphoenixТ.е. должна быть одна таблица с личными данными, а вторая с историей болезни?

да
...
Рейтинг: 0 / 0
Объединить данные двух таблиц
    #39370072
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rphoenix,

во-первых тут нет присваивания, вообще нет.
так что либо ты учишь общепринятый язык, либо мы все учим твой язык.
что вероятнее случится, думаю, все понимают

во-вторых нет, не один хрен, каким словом что называть
если мы не сможем говорить на оном и том же языке - мы не сможем понять тебя, а ты нас
в результате и мы будем давать плохие советы, и понимать ты их будешь вообще другим ужасным способом

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

в четвёртых - тебе нужно завести уникальный идентификатор черловека, например номер его регистрационной карточки ( натуральный ключ ) или просто число ( искусственный ключ ) и тогда связывать две таблицы можно будет только поля-идентификаторы. spisok.ID = spisok_amb.ID

в пятых - начни что-ли с того, чтобы прочитать Шумакова: http://www.ibase.ru/sql/
Ты в таких основах плаваешь, что... все что мы можем делать, это открывать эти книжки и читать их тебе вслух страницу за страницей. Потому что лучше чем они сказали - мы сказать вряд ли сможем. Да и не захотим: если бы мы были хорошими писателями, мы бы уже саим по книжке написали.
...
Рейтинг: 0 / 0
Объединить данные двух таблиц
    #39370098
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RphoenixПрисваивать каждое поле?
Нет, связь только по ключевым. Какие поля ключевые - спроси у разработчика БД.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Объединить данные двух таблиц
    #39370128
Rphoenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, эти таблицы между собой ключами не связаны.
...
Рейтинг: 0 / 0
Объединить данные двух таблиц
    #39370132
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rphoenix,

беда... Начинай с перепроектирования БД. Небось спёр её у двоешника, который курсач в прошлом году кое-как сдал, или даже не сдал.
...
Рейтинг: 0 / 0
Объединить данные двух таблиц
    #39370141
Rphoenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, это рабочая база больницы.
Нашел связь через Delphi:
"dm1.pFIBDataSet14.FieldValues['NAME']:=trim(vartostr(dm1.pFIBDataSet35.FieldValues['NAME_AMB']));" и т.д.
...
Рейтинг: 0 / 0
Объединить данные двух таблиц
    #39370143
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rphoenix,

руки оторвать с корнем
...
Рейтинг: 0 / 0
25 сообщений из 40, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Объединить данные двух таблиц
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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