Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

SQL запрос из двух таблиц [D6, Oracle]


Alexcool ©   (2002-06-27 20:16:00) 

Правда, не знаю как сделать, подскажите. Мне нужно сделать что-то вроде SELECT * FROM Table1, Table2. Но в этих таблицах есть поля с одинаковыми названиями, например ID. В результате я получаю DataSet с полями ID и ID_1, а хотелось бы с полями Table1ID и Table2ID. Это возможно? Если возможно, то как?


Lemon_AlexL   (2002-07-02 11:18:00) [1]

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

Присвоить в выборке им (полям) свои названия используя инструкцию
"ИМЯ_ПОЛЯ_В_ТАБЛИЦЕ" AS "ИМЯ_ПОЛЯ_В_РЕЗУЛЬТАТЕ". Правда для этого придется отказаться от символа "*" в SELECT, в мсто этого перечислять поля как они есть.
Пример:
SELECT (T1.FIELD1) AS FIELD1_FROM_T1,
(T2.FIELD1) AS FIELD1_FROM_T2
FROM TABLE1 T1, TABLE2 T2
... ну и т. д.


Sergey13   (2002-07-02 09:46:00) [2]

2Oleggg (02.07.02 09:38)
А ты сам то понял о чем речь? 8-)
Хороший пример того, что до некоторых парней вообще не доходит...


Oleggg   (2002-07-02 09:38:00) [3]

Юзай UNION
select * from t1 union select * from t2.

ЗЫ Спасибо Динана, насмешила - хороший пример того, что до девушек туго доходит, что нужно парням :)


Diana   (2002-07-02 08:41:00) [4]

А как на счет стандартного метода?
Select t1.*,t2.*
from table1 t1, table2 t2
where t1.<Имя ключевого поля>=t2.<Имя ключевого поля>


Имейте в виду без t1.<Имя ключевого поля>=t2.<Имя ключевого поля>записи в таблицах просто перемножатся друг на друга.
Да и все столбцы выберать не обязательно,
можно так
select t1.<Поле> П1, t2.<Поле> П2 ...
И все будет... :-)


Polevi   (2002-06-28 08:20:00) [5]

это извращение


Viewer   (2002-06-27 21:06:00) [6]

Еще можно проектировать таблицы и поля как
TABLE1_FIELDNAME1

Но для универсальности это не здорово, хотя и обходимо.


Viewer   (2002-06-27 21:04:00) [7]

Пример

SELECT R.*, T.ID AS TOWN_TOWN_ID, T.NAME AS TOWN_NAME, T.CODE AS TOWN_CODE, T.CTYPE_ID AS T_CTYPE_ID,
S.ID AS STREET_STREET_ID, S.NAME AS STREET_NAME,
C.ID AS C_ID, C.ABR AS C_ABR
FROM BUYERS R, TOWNS T, STREET S, CTYPE C


dimis   (2002-06-27 21:00:00) [8]

select a.id Table1id,b.id Table2id
from table1 a,table2 b


Anatoly Podgoretsky   (2002-06-27 20:36:00) [9]

Если заменить * на список полей, то да, используй предикат AS


Наверх

Титульная страница Поиск, карта сайта Написать письмо