Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 22.03.2010
Сообщений: 12
1

Запросы.

29.03.2010, 15:19. Показов 667. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть такая проблема!
Предположим что есть
Таблица1: с полями:
- id
- Id_2
- Id_3
И есть таблица2: с полями
- id
- name

Таблицы связаны так:
Таблица1.Id_2 = таблица2.Id
Таблица1.Id_3 = таблица2.Id

Немогу составить sql запрос для такого вывода данных:
Таблица1.id, Таблица2.name(по id_2), Таблица2.name(по id_3)

Сидим тут и не можем понять... А надо завтра показать!!!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.03.2010, 15:19
Ответы с готовыми решениями:

Запросы ...
Привет всем Люди добрые помогите пожалуйста, расскажите о запросах, вернее не о том что это и...

Запросы к БД
ADO Query Подскажите, пожалуйста, как сделать запрос с параметром через ADOQuery? Нужно, чтобы...

запросы
привет! как сделать запрос по полю edit, чтобы автоматически при вводе данных в него начинался...

Запросы в БД
Есть таблица в БД Access "Должности" в ней поля: ФИО сотрудника, должность, дата принятия и дата...

7
1856 / 1178 / 190
Регистрация: 27.03.2009
Сообщений: 4,558
29.03.2010, 15:40 2
а как так получается что 2 поля из 2 таблицы связаны с одним из первой? есть ли в этом смысл?
0
13104 / 5885 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
29.03.2010, 15:46 3
Jo2000, делается так:
SQL
1
2
3
4
5
6
7
8
9
10
11
12
SELECT
  t1.id AS t1_id
  ,t21.name AS t21_name
  ,t22.name AS t22_name
FROM
  table1 t1
  ,table2 t21
  ,table2 t22
WHERE
  t1.id_2 = t21.id
  AND t1.id_3 = t22.id
;
Цитата Сообщение от unick12345 Посмотреть сообщение
а как так получается что 2 поля из 2 таблицы связаны с одним из первой? есть ли в этом смысл?
Да, такое вполне может быть. Например таблица table1 содержит сведения вида: <работник> - <его начальник>. А в таблице table2 хранятся персональные сведения по всем сотрудникам - ФИО, телефон, ДР, адрес и пр. Тогда представленным выше запросом мы воводим сведения по сотрудникам с указанием для каждого непосредственного начальника.
---
Этот же запрос, для более гибкого использования можно переписать так:
Oracle:
SQL
1
2
3
4
5
6
7
8
9
10
11
12
SELECT
  t1.id AS t1_id
  ,t21.name AS t21_name
  ,t22.name AS t22_name
FROM
  table1 t1
  ,table2 t21
  ,table2 t22
WHERE
  t1.id_2 = t21.id (+)
  AND t1.id_3 = t22.id (+)
;
IBM DB2:
SQL
1
2
3
4
5
6
7
8
9
10
11
12
SELECT
  t1.id AS t1_id
  ,t21.name AS t21_name
  ,t22.name AS t22_name
FROM
  table1 t1 LEFT INNER JOIN table2 t21
    ON
      t1.id_2 = t21.id  
  LEFT INNER JOIN table2 t22
    ON
      t1.id_3 = t22.id  
;
1
1 / 1 / 0
Регистрация: 22.03.2010
Сообщений: 12
29.03.2010, 15:51  [ТС] 4
У нас наприме таблица "авто" и таблица "водилы"
У авто есть поля айди 2 или 3 водителей, а водители все в одно таблице
0
13104 / 5885 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
29.03.2010, 15:58 5
Цитата Сообщение от Jo2000 Посмотреть сообщение
У авто есть поля айди 2 или 3 водителей, а водители все в одно таблице
Тогда используй второй вариант запроса - где я вариант для Oracle и для DB2 привёл. Если какой-то машине будет соответствовать 1 водитель, а какой-то - 2 - эти запросы отработают верно. Аналогично туда можно прикрутить ещё водителей - 3, 4 и т. д. (если такое бывает).
---

<Mawrat: Переношу эту тему в раздел SQL.>
0
1 / 1 / 0
Регистрация: 22.03.2010
Сообщений: 12
29.03.2010, 16:04  [ТС] 6
Цитата Сообщение от Mawrat Посмотреть сообщение
SELECT
t1.id AS t1_id
,t21.name AS t21_name
,t22.name AS t22_name
FROM
table1 t1
,table2 t21
,table2 t22
WHERE
t1.id_2 = t21.id
AND t1.id_3 = t22.id
Что то я не могу разобраться (((
0
1856 / 1178 / 190
Регистрация: 27.03.2009
Сообщений: 4,558
29.03.2010, 16:12 7
используется таже таблица, только под двумя разными названиями t21 и t22
1
1 / 1 / 0
Регистрация: 22.03.2010
Сообщений: 12
29.03.2010, 16:22  [ТС] 8
Дошло!!!!
Спасибо!
0
29.03.2010, 16:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.03.2010, 16:22
Помогаю со студенческими работами здесь

Запросы к БД
Добрый вечер! Помогите пожалуйста дописать запрос, так, чтобы в базе можно было найти не только...

Запросы
Всем привет ребят, пожалуйста помогите, нужно добавить в программу 2 запроса: 1. По дате 2. По...

Запросы БД
Всем привет! И так сразу к делу! Имеется Access БД подключена через ADO(ADOConnection, ADOQuery)...

Запросы в Delphi
нужно сделать запрос &quot;стаж работников больше 25&quot; Ссылка на прогу


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru