Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Заполнение таблицы с помощью sql запроса / 12 сообщений из 12, страница 1 из 1
04.05.2020, 19:07
    #39954149
l_anddrey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение таблицы с помощью sql запроса
Помогите, как мне написать запрос, чтобы с помощью таблицы 1, заполнилась таблица 2. Т.е. значения столбца y в таблице 2, должны быть равны значению y в таблице 1. 7,15,26,33 чтобы именно эти значения были в таблице 2.

Примерный вид запроса такой, только не могу разобраться , как написать условие...
Insert into Table_2 (y) (Select x From Table_1 where x

...
Рейтинг: 0 / 0
04.05.2020, 19:26
    #39954153
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение таблицы с помощью sql запроса
l_anddrey
как написать условие...
where x in (2,8,13,20)
...
Рейтинг: 0 / 0
04.05.2020, 19:28
    #39954154
l_anddrey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение таблицы с помощью sql запроса
alexeyvg, Я это понимаю, но если таблица 1 равно 1000 значений и таблица 2 500 значений, то в ручную не получится так сделать...
...
Рейтинг: 0 / 0
04.05.2020, 19:30
    #39954155
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение таблицы с помощью sql запроса
l_anddrey
alexeyvg, Я это понимаю, но если таблица 1 равно 1000 значений и таблица 2 500 значений, то в ручную не получится так сделать...
Так сформулируйте алгоритм, что вам нужно?

Я это не могу понять, может, кто то ещё сможет...
l_anddrey
значения столбца y в таблице 2, должны быть равны значению y в таблице 1. 7,15,26,33 чтобы именно эти значения были в таблице 2.
...
Рейтинг: 0 / 0
04.05.2020, 19:41
    #39954157
l_anddrey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение таблицы с помощью sql запроса
alexeyvg, Есть таблица 1 (Она полная) и есть таблица 2 (в ней только некоторые значения x, которые есть в таблице 1). Таблица 1 полностью заполнена ( столбцы X и Y ), в таблице 2 только значения X . Нужно, чтобы значения Y , были перенесены из таблицы в таблицу 2. Только перенесены те, которые есть по Х
...
Рейтинг: 0 / 0
04.05.2020, 19:43
    #39954159
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение таблицы с помощью sql запроса
Код: sql
1.
2.
3.
4.
update a set
  a.y = b.y
from Table2 a
inner join Table1 b on a.x = b.x
...
Рейтинг: 0 / 0
04.05.2020, 19:43
    #39954160
londinium
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение таблицы с помощью sql запроса
Код: sql
1.
2.
3.
4.
UPDATE T
 SET T.Y=RR.Y
  FROM TABLE2 AS T
 JOIN TABLE1 AS RR ON T.X=RR.X
...
Рейтинг: 0 / 0
04.05.2020, 19:48
    #39954163
l_anddrey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение таблицы с помощью sql запроса
Гавриленко Сергей Алексеевич, londinium,

Спасибо большое!
...
Рейтинг: 0 / 0
14.06.2020, 17:01
    #39969024
Colt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение таблицы с помощью sql запроса
Гавриленко Сергей Алексеевич
Код: sql
1.
2.
3.
4.
update a set
  a.y = b.y
from Table2 a
inner join Table1 b on a.x = b.x



А почему не так:
Код: sql
1.
2.
3.
4.
update Table2
set Table2.y=t.y
from Table1 t
where Table2.x=t.x



Полный вариант теста
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
create table Table1(x int, y int)
create table Table2(x int, y int)

insert into Table1 values(2, 7)
insert into Table1 values(5, 10)
insert into Table1 values(7, 8)
insert into Table1 values(8, 15)
insert into Table1 values(10, 19)
insert into Table1 values(13, 26)
insert into Table1 values(15, 31)
insert into Table1 values(20, 33)

insert into Table2 values(2, null)
insert into Table2 values(8, null)
insert into Table2 values(13, null)
insert into Table2 values(20, null)

select * from Table2

update Table2
set Table2.y=t.y
from Table1 t
where Table2.x=t.x

select * from Table2

drop table Table1
drop table Table2

...
Рейтинг: 0 / 0
14.06.2020, 21:08
    #39969093
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение таблицы с помощью sql запроса
Colt
А почему не так
А вам когда сдачу дают в магазине, вы продавцу тоже кучу вариантов по номиналу купюр накидываете со словами "а почему не так, ведь тоже сходится"?
...
Рейтинг: 0 / 0
14.06.2020, 21:40
    #39969097
Colt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение таблицы с помощью sql запроса
Гавриленко Сергей Алексеевич,
Нет, не по этому.
Просто я не считаю себя великим спецом в SQL, потому меня насторожило, что тот вариант, который обычно использую я, не совпал с ответом, который дали вы (и почти слово-в-слово следующий автор).
Вот я и решил уточнить у профессионалов, может я что-то не так делаю?
Может есть какие-нибудь противопоказания (например, мой вариант не будет работать в других СУБД)?
...
Рейтинг: 0 / 0
14.06.2020, 22:04
    #39969102
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение таблицы с помощью sql запроса
Colt
Может есть какие-нибудь противопоказания ( например, мой вариант не будет работать в других СУБД )?
скорее, наоборот (в PG, например, твой отработает, а update join-а - нет)

update/delete join-а это "фишка" MS SQL, причём очень удобная
Всегда можно update/delete изменить на select (не меняя ничего другого в запросе) и посмотреть что ж там будет обновляться/удаляться
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Заполнение таблицы с помощью sql запроса / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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