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

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

Запрос SQL для TQuery.


Weare ©   (2003-07-29 18:19:00) 

Помогите, плз. Книга дома, а мне ну о-очень срочно нужно. Есть две таблицы наименования товаров (и в одной и в другой есть поле Name). Как создать запрос, который бы давал таблицу, содержащую наименования из одной и из другой таблицы в одном и том же столбце, все равно в каком порядке.
А то я тут под конец дня совсем заработался.


MichailDalacov   (2003-07-30 12:10:00) [1]

select NAME from Table1
union all
select NAME from Table2


Weare   (2003-07-30 11:07:00) [2]


> MichailDalacov (29.07.03 20:27)
> select NAME,1 from Table1
> union
> select NAME,2 from Table2

Огромное спасибо, работает.


Dred2k   (2003-07-29 21:35:00) [3]

> MichailDalacov (29.07.03 20:34)

Судя по > Weare © (29.07.03 19:45)
подойдут.


MichailDalacov   (2003-07-29 20:34:00) [4]

Если в Table1 или в Table2 имеются одинаковые товары, то во втором столбце константы не подойдут, нужно выбирать какие-то уникальные значения, например ID записей, если они не пересекаются в двух таблицах


MichailDalacov   (2003-07-29 20:27:00) [5]

select NAME,1 from Table1
union
select NAME,2 from Table2


Weare   (2003-07-29 19:45:00) [6]


> gsvserg © (29.07.03 19:30)

Спасибо, но так мне выдало наименования только из первой таблицы.
Еще раз.
Давайте так:

есть Table1: NAMEи Table2: NAME
сервиз ложка
стакан хлебница
стакан
Нужно получить: Name
сервиз
стакан
ложка
хлебница
стакан


gsvserg   (2003-07-29 19:30:00) [7]

select (t1.name +" "+ t2.name) as newname
from table1 t1 left join table2 t2 on t1.Name=t2.Name


Mike1 Kouzmine1   (2003-07-29 19:12:00) [8]

Тогда читай про union


Weare   (2003-07-29 19:07:00) [9]


> Mike1 Kouzmine1 (29.07.03 18:40)
> А ф1 тоже дома?

Не понял.


> Соловьев © (29.07.03 18:41)


> select t1.*, t2.*
> from table1 t1 left join table2 t2 on t1.Name=t2.Name

А так все равно получается два результирующих столбца: Name и Name1. А мне нужен один.
Вот, например, в одной таблице есть - сервиз, стакан; а во второй - ложка, хлебница, стакан.
Мне нужно, чтобы все эти наименования попали в один столбец результирующей таблицы.


Соловьев   (2003-07-29 18:41:00) [10]


> Тогда получается, что если в t2 нет такого наименования
> как в t1, то оно не попадет в результирующую таблицу.


select t1.*, t2.*
from table1 t1 left join table2 t2 on t1.Name=t2.Name



> Mike1 Kouzmine1 (29.07.03 18:40)

прав. надо хоть чуть-чуть читать хелп.


Mike1 Kouzmine1   (2003-07-29 18:40:00) [11]

А ф1 тоже дома? Почитай про left join, right join в localsql.hlp


Weare   (2003-07-29 18:37:00) [12]

Тогда получается, что если в t2 нет такого наименования как в t1, то оно не попадет в результирующую таблицу. А мне необходимо, чтобы все наименования из первой и второй таблицы попали в один столбец.


Соловьев   (2003-07-29 18:21:00) [13]

связать по ключевому полю?

select t1.*, t2.*
from table1 t1 join table2 t2 on t1.Name=t2.Name


Наверх

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