Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Sql запрос для 3 таблиц

Автор: GMile 2.05.2006 21:35

Есть 3 таблицы с данными. Связь между таблицами 1:1. Как сделать SQL-запрос, чтобы из 1-ой таблицы брался 1 столбец, из 2-ой - 2 столба, а из 3-ей - 1.

И если не SQL-запросом это можно сделать, то как?

Автор: hardcase 2.05.2006 23:13

Цитата(GMile @ 2.05.2006 18:35) *
Есть 3 таблицы с данными. Связь между таблицами 1:1. Как сделать SQL-запрос, чтобы из 1-ой таблицы брался 1 столбец, из 2-ой - 2 столба, а из 3-ей - 1.

SQL-запрос - это предложение, с помощью которого ты запрашиваешь данные, связанные таким-то образом - всё остальное делает система.

Определись со связью между данными и ты получишь решение.

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

Автор: GMile 3.05.2006 8:55

А как показать что связь между таблицами 1:1?

Должна получиться итоговая таблица из 3 таблиц со столбцами: ОПЕРАЦИЯ, ВХОДЯЩЕЕ В-ВО, ДОПОЛНИТЕЛЬНОЕ СЫРЬЕ И ВЫХОДЯЩИЕ ПРОДУКТЫ

1-ая таблица ОПЕРАЦИЯ, ПРОЦЕСС, ВХОДЯЩЕЕ В-ВО
2-ая таблица ПРОЦЕСС, СЫРЬЕ
3-ья таблица ВХОДЯЩЕЕ В-ВО, ВЫХОДЯЩИЙ ПРОДУКТ.

может конечно я неудачно составила таблицы, но вот надо мне сделать эту итоговую таблицу и на ней я застряла sad.gif

Автор: GoodWind 3.05.2006 10:01

можешь показать схему данных ?

Автор: Гость 3.05.2006 15:47

Цитата
может конечно я неудачно составила таблицы

Первичных ключей не видно, ВХОДЯЩЕЕ и ПРОЦЕСС явно просятся внешними ключами из словариков. А ДОПОЛНИТЕЛЬНОЕ откуда взялось? И в чём вообще проблема - спрашиваю, как химик по образованию.

Автор: Бродяжник 3.05.2006 17:17

Таблицы неудачны.
Логичнее уж так:
Таблица ПРОЦЕССЫ (ПРОЦЕСС, ОПЕРАЦИЯ)
Таблица ВХОД (ОПЕРАЦИЯ, ВХОДЯЩИЕ_ЭЛЕМЕНТЫ)
Таблица СЫРЬЕ (ОПЕРАЦИЯ, ДОПОЛНИТЕЛЬНОЕ_СЫРЬЕ)
Таблица ВЫХОД (ОПЕРАЦИЯ, ВЫХОДНЫЕ_ПРОДУКТЫ)
Тогда ведущая таблица - ПРОЦЕССЫ, а на нее через left join по полю ОПЕРАЦИЯ навешиваем все остальное.

Автор: GMile 3.05.2006 17:47

Схему показать не могу. У меня только есть теория производства содопродуктов и по ней надо БД сделать.

Что такое left join???? blink.gif

Я должна это сделать на Delphi sad.gif

Ну а как сделать итоговую то???

Автор: GoodWind 4.05.2006 15:21

Цитата
SELECT вход.операция, вход.входящие_элементы, Процессы.процесс, сырье.доп_сырье, выход.выходная_продукция
FROM ((вход LEFT JOIN выход ON вход.операция=выход.операция) LEFT JOIN Процессы ON выход.операция=Процессы.операция) LEFT JOIN сырье ON Процессы.операция=сырье.операция;

примерно так....

Автор: GMile 4.05.2006 16:41

Клево!!!! Я так сделала только теперь мне не нужна таблица ПРОЦЕССЫ. СПАСИБО ОГРОМНОЕ!!!!!!!!! give_rose.gif