powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Подскажите как организовать таблицу
8 сообщений из 8, страница 1 из 1
Подскажите как организовать таблицу
    #32304794
Фотография фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне нужно сделать таблицу (Т1), где (помимо прочих) есть 2 поля: "город отправления" и "город получения". Соответственно есть таблица городов (Т2).
Я сделал в Т1 2 внешних ключа и ID Т2. Но сразу же встал вопрос, как написать запрос, который бы выдавал Т1, а вместо ID в 2-х полях городов их названия (из Т2).
И вот теперь я в замешательстве: переделывать таблицу (но тогда как?), или придумать как написать запрос (тоже не знаю как). Помогите, если знаете.
Заранее спасибо.
...
Рейтинг: 0 / 0
Подскажите как организовать таблицу
    #32304798
Фотография фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыл сказать: база-IB6.5, клиент (хотя это вроде неважно)-Delphi
...
Рейтинг: 0 / 0
Подскажите как организовать таблицу
    #32304855
Panadol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если я правильно понял, то у тебя есть две таблицы:
Т1(ID1-город отправления, ID2-город получения, .... и т.д.)
Т2(ID - ключик, NAME - название города)
И ты хочешь чтобы вместо ID1, ID2 подставлялся NAME из второй таблицы.

Если так, то SQL-запрос будет такой:
SELECT b.Name AS City1, c.Name AS City2, a.NAME
FROM T1 a,T2 b,T2 c
WHERE b.Name = (select NAME from t2 where id=t1.id1) AND c.Name=(select NAME from t2 where id=t1.id2)

только что проверял... вроде работает ... но проверял в БДЕ
____________________________
У меня к тебе встречный вопрос - как из DBF III+ импортировать данные в InterBase, причем в таблице русские имена. Файл с кодировкой dBASE RUS cp866 ?
Без русских имен - все классно, а если с ними то ошибка :(
...
Рейтинг: 0 / 0
Подскажите как организовать таблицу
    #32304888
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вам неплохо бы почитать основы SQL, в частности про операцию соединения.
Я этот запрос писать не буду - он очень простой и намного полезнее будет если вы откроете справочник по SQL и напишите его сами.
К тому же в самих дельфях есть Lookup-поля - ими тоже можно такие данные получать...
...
Рейтинг: 0 / 0
Подскажите как организовать таблицу
    #32305433
Фотография Alexey Polovinkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TO GOLD
автор писал:Вам неплохо бы почитать основы SQL, в частности про операцию соединения.
Я этот запрос писать не буду - он очень простой и намного полезнее будет если вы откроете справочник по SQL и напишите его сами.

Можно критики вашу:
SELECT Card,TOSize,TimeSize, (SELECT SUM(EndNum-StartNum+1)
FROM WCards b
WHERE WNum in (SELECT WNum FROM AWaybill WHERE WDate <='01.10.2003' AND isArrive=1)
AND Pr=0
AND a.Card=b.Card
GROUP BY Card
) AS Arrived,
(SELECT SUM(EndNum-StartNum+1)
FROM WCards c
WHERE WNum in (SELECT WNum FROM CWaybill WHERE WDate <='01.10.2003' AND isCost=1)
AND Pr=1
AND a.Card=c.Card
GROUP BY Card
) AS Costed
FROM Telecards a
WHERE Card=(SELECT DISTINCT Card FROM WCards WHERE Card=a.Card)
Правильно ли я потроил этот запрос и если можно по другому, то прошу вашего замечания...
...
Рейтинг: 0 / 0
Подскажите как организовать таблицу
    #32305606
Voha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вложенными запросами я бы не злоупотреблял бы
а на счетостального не понял не чиго. Прошу прощения.

http://www.krista.ru/ib/index.html][сдесь почему бы не злоупотреблялбы]
...
Рейтинг: 0 / 0
Подскажите как организовать таблицу
    #32305689
1man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select * from CONTACT_T
left join FACE_T on FACE_CC=FACE_ID

Здесь FACE_CC - поле из таб CONTACT - ссылка на ID (поле FACE_ID) в табл FACE, где содержатся фамилии лиц.
Вместо * можно указать поля, которые нужны в гриде, или в редакторе DataSet или Grid можно "отрихтовать".
...
Рейтинг: 0 / 0
Подскажите как организовать таблицу
    #32305912
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разбираться в вашем запросе не буду, но мне тут сразу не нравиться вот что:
1) автор писал:WHERE WNum in (SELECT WNum FROM CWaybill WHERE WDate <='01.10.2003' AND isCost=1)
Я бы заменил это на
Код: plaintext
WHERE EXISTS(SELECT WNum FROM CWaybill c1 WHERE WDate <='01.10.2003' AND isCost= 1  and c1.WNum=c.WNum)


2) автор писал:WHERE Card=(SELECT DISTINCT Card FROM WCards WHERE Card=a.Card)
Аналогично.

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


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