Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > из твух таблиц в одну


Автор: Yantarik 18.9.2007, 11:48
Есть две таблицы
tab1 и tab2
Их надо сравнить по параметру b и 
если tab1.b=tab2.b то все из tab1 записать в tab_osn.

Код

SELECT * INTO tab_OSN FROM tab1
CROSS JOIN tab2
tab1.b=tab2.b


Правильно ли написано? или это пишется как-то по-другому?
И почему sql ругается на символе "."? (потому к тому моменту база работает с tab_osn?)

Может надо что-то типа:
- выделить все в tab1, где tab1.b=tab2.b? То есть через where написать?
- или сначала сделать выборку, а потом ее записать в tab_osn?



Автор: kobra 18.9.2007, 13:01
Цитата(Yantarik @  18.9.2007,  11:48 Найти цитируемый пост)
И почему sql ругается на символе "."? 

CROSS JOIN tab2 ON

Автор: Yantarik 18.9.2007, 13:18
Цитата(kobra @  18.9.2007,  13:01 Найти цитируемый пост)
CROSS JOIN tab2 ON 

Если убрать  CROSS, то все равно ему точка не нравится.
Может как-то вообще по-другому написать?

Например: выбрать все из tab1, где tab1 равен tab2 по столбцу р
(но я никак не пойму, куда мне эту tab2 прописать, т.к. в селекте она не уместа вроде...)

Автор: kobra 18.9.2007, 15:31
Код

SELECT * INTO tab_OSN 
FROM tab1
WHERE b IN (SELECT b FROM tab2)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)