powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вопрос по SELECT в INSERT
34 сообщений из 34, показаны все 2 страниц
Вопрос по SELECT в INSERT
    #38755713
asminog72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе утро!

Вопрос такой возник. Нужно до вставки данных в одну из таблицу, выбрать эти данные из другой, а именно:
Код: sql
1.
INSERT INTO таблица1(поле1,поле2) ... а здесь что-то типа SELECT поле1 FROM таблица2 WHERE поле2='одно_условие' OR поле2='другое_условие'  



Подскажите, как такой запрос правильно сделать!

Спасибо!
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38756048
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://dev.mysql.com/doc/refman/5.6/en/insert-select.html
У тебя с головкой точно всё нормально?
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38756251
asminog72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina У тебя английский, наверное, в одном месте свербит... По русски спрашиваю.
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38756285
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asminog72Доброе утро!

Вопрос такой возник. Нужно до вставки данных в одну из таблицу, выбрать эти данные из другой, а именно:
Код: sql
1.
INSERT INTO таблица1(поле1,поле2) ... а здесь что-то типа SELECT поле1 FROM таблица2 WHERE поле2='одно_условие' OR поле2='другое_условие'  



Подскажите, как такой запрос правильно сделать!

Спасибо!

Правильно вот так

Код: sql
1.
2.
INSERT INTO таблица1 (поле1, поле2) 
    SELECT поле1, поле2 FROM таблица2 WHERE поле2 = 'одно_условие' OR поле2 = 'другое_условие'



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

пример

Код: sql
1.
2.
insert into ban (banId, banYype, banTit) 
    select userId, 'user' t, userFio from users where userCDate < 1388534399;
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38756338
asminog72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!

Мне нужно в таблицу1 (в одну строку) вставить два значения из одного и того же поля но из разных строк таблицы таблица2.

Чё-то не получается...
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38756380
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asminog72Спасибо!

Мне нужно в таблицу1 (в одну строку) вставить два значения из одного и того же поля но из разных строк таблицы таблица2.

Чё-то не получается...

вместо того, чтобы плакать и жаловаться на жизнь лучше попробуйте четко сформулировать новую задачу, создайте под неё отдельную тему и может быть вам кто-нибудь поможет, а лить крокодиловы слезы бесполезно!! да и не по-мужски это...
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38756411
asminog72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вы ошибаетесь - я не плакаю. Зачем же новую тему-то открывать?..

Задача такова: имеются две таблицы. В одной из них имеются записи, а вторая - пуста.

Нужно: из поля id двух разных записей таблицы, в которой находятся записи, выбрать значения и вставить эти значения (в разных полях) одной записью в пустую таблицу.
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38756428
asminog72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так как вы посоветовали, что нужно обязательно два поля указывать после SELECT , получилось, но образовались две записи. Мне же нужно чтобы значения попали в одну запись: выбираем два значения из одного и того же столбца но из разных строк одной таблицы, и вставляем их одной записью в другую.
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38756430
Anatoly B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asminog72Вы ошибаетесь - я не плакаю. Зачем же новую тему-то открывать?..

Задача такова: имеются две таблицы. В одной из них имеются записи, а вторая - пуста.

Нужно: из поля id двух разных записей таблицы, в которой находятся записи, выбрать значения и вставить эти значения (в разных полях) одной записью в пустую таблицу.
если я правильно понял задачу, то как вариант можно попробовать:

Код: sql
1.
2.
3.
4.
5.
6.
insert into пустая_таблица (поле1) 
select т1.Поле1 + т2.Поле2
from  таблица1 т1, таблица1 т2
where t1.связующее_поле = t2.связующее_поле and
         t1.поле2 = 'одно_условие' and
         t2.поле2 = 'другое_условие' 
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38756470
asminog72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!

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

Код: sql
1.
2.
3.
4.
5.
6.
7.
|----------------|                  |-----------------|
|     таб.1          |                  |      таб.2           |
|______________|                  |_______________|
|     1     |         |------------>|      1     |     2   |
|_______|_____ |                   -------------------
|     2     |         |---------------------------^
------------------
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38756475
asminog72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Съехало всё... Если таб.2 выравнять влево, то примерно так:

1----------------1 2
2-------------------^
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38756484
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asminog72,

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

То есть даже если я вам сейчас помогу решить задачу, которую вы сейчас дополнили новыми условиями, то вполне возможна ситуация, что вы и в третий раз введете новые условия с помощью фразы: да, это решение работает, но на самом деле, мне нужно совсем другое...

когда такое происходит, то лично я испытываю очень сильную демотивацию, ну или проще говоря, мне становится больно. Поэтому пусть вам в этой теме помогает кто-нибудь другой.
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38756490
asminog72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да вы извините, я огорчать вас не хотел! Если б я разбирался в этом, разве бы стал спрашивать?..

Не серчайте - авось, справлюсь!..
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38756917
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asminog72 в два различных поля одной её записи нужно поместить соответствующие значения одного и того же поля , но взятые из двух разных записей догадаться, каким образом связаны записи таблиц 1 и 2, предлагаете нам самостоятельно?
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38756942
asminog72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglirдогадаться, каким образом связаны записи таблиц 1 и 2, предлагаете нам самостоятельно?

А для чего это вам нужно-то?.. Или из приведенного "рисунка" нельзя сделать вывод о взаимосвязи одной таблицы с другой? Всё что мне нужно - это взять два столбца с одним и тем же названием (из разных строк) из одной и положить их в одну строку в другой таблице, при малом количестве "телодвижений". Это просто задача такая, понимаете?

Я знаю, что можно это сделать несколькими INSERT-ами в сочетании с SELECT-ами. А за один раз никак нельзя?
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38756974
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asminog72А для чего это вам нужно-то?Мне это не нужно - это нужно вам, чтобы получить ответ.
asminog72Всё что мне нужно - это взять два столбца с одним и тем же названием ( из разных строк ) из одной и положить их в одну строку в другой таблицеВ том и вопрос - из каких "из разных"? из соседних по какому-то критерию? или можно вообще из случайных?
PS. Таблица 2 изначально пустая, что ли?
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38756976
Anatoly B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asminog72tanglirдогадаться, каким образом связаны записи таблиц 1 и 2, предлагаете нам самостоятельно?

А для чего это вам нужно-то?.. Или из приведенного "рисунка" нельзя сделать вывод о взаимосвязи одной таблицы с другой? Всё что мне нужно - это взять два столбца с одним и тем же названием (из разных строк) из одной и положить их в одну строку в другой таблице, при малом количестве "телодвижений". Это просто задача такая, понимаете?

Я знаю, что можно это сделать несколькими INSERT-ами в сочетании с SELECT-ами. А за один раз никак нельзя?

если Таблица 1 содержит значения:
1
2
3
4

То Таблица 2 какие значения должна содержать?
У меня возникает множество вариантов. Например:
1) 1+2
3+4
2) или
1+4
2+3
3) или
1+2
1+3
1+4
2+1........
Вопрос про связи двух записей весьма важен
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38756984
Anatoly B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asminog72Съехало всё... Если таб.2 выравнять влево, то примерно так:

1----------------1 2
2-------------------^


Код: sql
1.
2.
3.
4.
5.
6.
insert into пустая_таблица (поле1, поле2) 
select т1.Поле1 , т2.Поле2
from  таблица1 т1, таблица1 т2
where t1.связующее_поле = t2.связующее_поле and
         t1.поле2 = 'одно_условие' and
         t2.поле2 = 'другое_условие'.... 



вот это : t1.связующее_поле = t2.связующее_поле
следует определить в зависимости от того какие записи должны связываться. Если все ко всем ( 1+1, 1+2, 1+3, 1+4, 2+1....) то условие можно вообще убрать.
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38756986
Anatoly B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
опечаточка:

Код: sql
1.
2.
3.
4.
5.
insert into пустая_таблица (поле1, поле2) 
select т1.Поле1 , т2.Поле1
from  таблица1 т1, таблица1 т2
where t1.связующее_поле = t2.связующее_поле and
         -- t1.полеX = 'одно_условие' and t2.полеX = 'другое_условие'....   <- это опять же от фильтрации данных зависит
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38757007
asminog72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir]В том и вопрос - из каких "из разных"? из соседних по какому-то критерию? или можно вообще из случайных?
PS. Таблица 2 изначально пустая, что ли?

Критерий - просто различные ID. Да, действительно, вторая таблица пустая.
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38757021
asminog72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly Bвот это : t1.связующее_поле = t2.связующее_поле
следует определить в зависимости от того какие записи должны связываться. Если все ко всем ( 1+1, 1+2, 1+3, 1+4, 2+1....) то условие можно вообще убрать.

Вот смотрите. Имеются два слова в таблице Т1. В дальнейшем мне потребуется связать эти два слова по их ID, и положить их ОДНИМ ЗАПРОСОМ И В ВИДЕ ОДНОЙ ЗАПИСИ в таблицу Т2.

Я не могу сейчас, заранее, предсказать, какие слова нужно будет в дальнейшем связать друг с другом... Для меня на данный момент важно, как правильно сформировать запрос чтобы в таблицу Т2 попала одна запись, а не две и более.

Всем спасибо за ответы!
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38757079
asminog72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asminog72
... В дальнейшем мне потребуется связать эти два слова по их ID, и положить их в определённом порядке ...
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38757109
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asminog72,

то есть вы не знаете (не говорите) ни связи, ни порядка, но хотите получить запрос?
ну в принципе Анатолий его привёл - в общем виде, так сказать
а конкретней, не зная условия, и не получится
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38757172
asminog72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglirasminog72,

то есть вы не знаете (не говорите) ни связи, ни порядка, но хотите получить запрос?
ну в принципе Анатолий его привёл - в общем виде, так сказать
а конкретней, не зная условия, и не получится

Я не знаю, как Вам ещё объяснить... Основная цель: По А и Б из одной таблицы взять их ID , связать в определённом порядке (т. е., либо сначала ID А а за ним ID Б , либо наоборот), и разместить в виде записи в другой таблице. Роли не играет, что прежде - ID А или наоборот. Может быть и так и эдак.

Почему не получится-то?.. Сейчас-то я могу, например, занести INSERT-ом запись в пустую таблицу, но только ОДНОГО ID за запрос, а не сразу двух, как нужно. Поэтому приходится использовать UPDATE для внесения второго ID в ту запись, которая образовалась.

Получается, что невозможно с помощью INSERT ... SELECT образовать из 2 столбцов одного типа, ОДНУ запись?.. То есть, из "вертикали" получить "горизонталь" одним запросом INSERT ... SELECT?
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38757217
asminog72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем, эту проблему решил. Вот, может быть кому-нибудь пригодится:

Код: sql
1.
2.
3.
$sql="INSERT IGNORE INTO таблица2(index_А, index_Б) 
                                  VALUES((SELECT А_id FROM таблица1 WHERE char='А'),
		                             (SELECT Б_id FROM таблица1 WHERE char='Б'))";
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38757224
asminog72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если возможно, модераторы, уберите ВВ код из моего предыдущего сообщения.
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38757401
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asminog72В общем, эту проблему решилВы ввели во вторую таблицу одну запись. Так и надо?..
Если да, то если бы вы сразу сказали, что нужно создать именно одну запись из всего двух имеющихся , решение было бы выложено в первом же ответе :)
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38757423
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglir, автор темы про это не один раз повторил начиная с http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1117300&msg=16616688
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38757432
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr.Fontaine, это его сообщение можно прочитать как "в каждую строку таблицы 2 мне надо вставить данные из двух строк таблицы 1". По крайней мере я его именно так понял. И Люмикс, судя по его постам, тоже. А автор, похоже, не понял, что мы его неправильно поняли :)
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38757443
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asminog72В общем, эту проблему решил. Вот, может быть кому-нибудь пригодится:

Код: sql
1.
2.
3.
$sql="INSERT IGNORE INTO таблица2(index_А, index_Б) 
                                  VALUES((SELECT А_id FROM таблица1 WHERE char='А'),
		                             (SELECT Б_id FROM таблица1 WHERE char='Б'))";


Зря конечно Вы не прочитали сообщение http://www.sql.ru/forum/1117300/vopros-po-select-v-insert?mid=16616688#16619132
и не осознали, что нужно просто подставить требуемые значения
Код: sql
1.
2.
INSERT IGNORE INTO таблица2(index_А, index_Б) 
VALUES(SELECT t1.А_id, t2.Б_id FROM таблица1 t1, таблица1 t2 WHERE char='А' and char='Б')
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38757451
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglir, та не.... там чётко написано: в одну строку и после сообщения люмикса повторено однако
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38757459
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr.Fontaine,

валуес со скобками можно убрать
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38757466
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Написано "в одну строку", но не написано, что в исходной таблице всего 2 строки. "из разных строк"<>"из всего лишь двух строк" :)
к тому же после примера Анатолия, где фигурировали отнюдь не две исходные записи, ТС не сказал ни слова о том, что пример неверный, а их должно быть ровно две
...
Рейтинг: 0 / 0
Вопрос по SELECT в INSERT
    #38757562
asminog72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да ладно вам спорить-то... Решил, да и всё.

Кстати, мне и нужно было добавлять не массово, а выборочно. Просто, изъяснить сразу всю суть, не всегда получается. Поэтому и недопонимания.

Спасибо всем!
...
Рейтинг: 0 / 0
34 сообщений из 34, показаны все 2 страниц
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вопрос по SELECT в INSERT
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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