![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запрос 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