Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 764

/ вопрос открыт /

Доброго времени суток, уважаемые эксперты! Какой SQL-
запрос надо написать в Query, чтобы данные из двух таб. в одну переместить

MILAN7 Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: MILAN7 (статус: Посетитель)
Вопрос отправлен: 11 мая 2009, 23:28
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Dron

Здравствуйте, MILAN7!
Если речь о связке таблиц по ключу, то запрос примерно следующий:

SELECT table1.*, table2.* FROM table1 INNER JOIN table2 ON (table2.KEY = table1.KEY)
Но вы уверены, что вам нужны абсолютно все поля из обеих таблиц? Наверняка нужны только некоторые - тогда их и следует перечислить.

Ответ отправил: Dron (статус: Студент)
Время отправки: 12 мая 2009, 09:25


Мини-форум вопроса

Всего сообщений: 11; последнее сообщение — 14 мая 2009, 17:10; участников в обсуждении: 4.
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 12 мая 2009, 05:37 [#1]:

Если требуется перемещение, а не помещение, то одним запросом не обойтись. А вообще, вопросы надо задавать конкретнее - структура исходных таблиц, какие данные надо перенести, структура таблицы-приемника. Условия связывания данных и т.д.
MILAN7

MILAN7 (статус: Посетитель), 12 мая 2009, 16:41 [#2]:

Нужно что-бы в табл. зарплата, отображались фамилия, имя, отчество из табл. Кадры
Вадим К

Вадим К (статус: Академик), 12 мая 2009, 16:43 [#3]:

а может никуда перемещать не нужно? а просто взять данные с двух таблиц и в гриде отобразить?
Галочка "подтверждения прочтения" - вселенское зло.
MILAN7

MILAN7 (статус: Посетитель), 12 мая 2009, 16:56 [#4]:

Ну можно и так, я пробовал этот запрос SELECT table1.*, table2.* FROM table1 INNER JOIN table2 ON (table2.key = table1.key), но выдаёт ошибку, можно ли ещё как нибудь, подскажите пожалуста
Вадим К

Вадим К (статус: Академик), 12 мая 2009, 17:10 [#5]:

если в первой части select упоминается две таблицы, то и в from должно быть две. как минимум.
Галочка "подтверждения прочтения" - вселенское зло.
Dron

Dron (статус: Студент), 12 мая 2009, 20:11 [#6]:

MILAN7: прямо отсюда скопировали и вставили в программу?
С уважением.
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 13 мая 2009, 18:12 [#7]:

to Вадим К - вторая таблица связывается по join поэтому после from ей быть не обязательно.
to MILAN7 - какая ошибка выдается?
Если в таблицах имеются поля с одинаковыми именами, то использование конструкции типа table.* не есть хорошо.
MILAN7

MILAN7 (статус: Посетитель), 14 мая 2009, 15:31 [#8]:

Запрос: SELECT Zarplata.*, Kadri2.family, name, father_name FROM Zarplata INNER JOIN Kadri ON (Kadri.family = Zarplata.family)
Ошибка: Table is read only
Вадим К

Вадим К (статус: Академик), 14 мая 2009, 16:21 [#9]:

а если написать по простому
SELECT Zarplata.*, Kadri2.family, name, father_name FROM Zarplata, Kadri where (Kadri.family = Zarplata.family)
Галочка "подтверждения прочтения" - вселенское зло.
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 14 мая 2009, 17:08 [#10]:

to MILAN7это полный текст запроса? Тогда очень удивительно, что ругается на то, что таблица только для чтения. Связывать по полю фамилия - очень плохо - что будете делать, если появятся однофамильцы?
Вадим К

Вадим К (статус: Академик), 14 мая 2009, 17:10 [#11]:

то, что фамилии есть в обоих таблицах - плохой дизайн базы. Надо id заводить.
Галочка "подтверждения прочтения" - вселенское зло.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:25
Выполнено за 0.03 сек.