|
|
|
Возможно ли совместить INSERT, SELECT и выборку из данного множества
|
|||
|---|---|---|---|
|
#18+
Уважаемые, добрый день! Хочу спросить, есть ли для MySQL возможность сделать такой запрос: Допустим есть 2 таблицы Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. И мне надо вставить в Tab2, несколько строк. Т.е. tab1ID у них один, а вот relData - заданное множество. Т.е. если это попробовать выразить корявым SQL запросом для наглядности, то вот: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Даже не знаю, корректен ли такой запрос, написал его просто для иллюстрации вопроса. Подскажите пожалуйста, как такую задачу решить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2016, 20:20 |
|
||
|
Возможно ли совместить INSERT, SELECT и выборку из данного множества
|
|||
|---|---|---|---|
|
#18+
kormot, Именно таким и запросов и писать. Только union all вместо union. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2016, 20:26 |
|
||
|
Возможно ли совместить INSERT, SELECT и выборку из данного множества
|
|||
|---|---|---|---|
|
#18+
И Код: sql 1. нужен только у первой строки - то есть беды большой не будет, но и толку никакого, алиасы во втором и последующих запросах игнорятся, а текст длиннее... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2016, 21:26 |
|
||
|
Возможно ли совместить INSERT, SELECT и выборку из данного множества
|
|||
|---|---|---|---|
|
#18+
Ясно, да, попробовал, так работает. А почему нет простого способа задать набор строк в виде аргументов функции? Очевидная же функциональность для БД. Задал что-то типа SELECT DATA_IN("123", "234", "345") AS field1, DATA_IN("a", "b", "c") AS field2 и получил: Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2016, 21:35 |
|
||
|
Возможно ли совместить INSERT, SELECT и выборку из данного множества
|
|||
|---|---|---|---|
|
#18+
kormotОчевидная же функциональность для БД.То, что ты называешь "очевидное", есть ни что иное как транспонирование, а в терминах SQL это PIVOT, который является чужеродной "нашлёпкой" по причине его вопиющей нереляционности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2016, 21:40 |
|
||
|
Возможно ли совместить INSERT, SELECT и выборку из данного множества
|
|||
|---|---|---|---|
|
#18+
AkinaТо, что ты называешь "очевидное", есть ни что иное как транспонирование, а в терминах SQL это PIVOT, который является чужеродной "нашлёпкой" по причине его вопиющей нереляционности. Ясно, спасибо за объяснение. Хотя конечно не первый раз возникает необходимость в эдаком "вопиющем транспонировании" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2016, 08:15 |
|
||
|
Возможно ли совместить INSERT, SELECT и выборку из данного множества
|
|||
|---|---|---|---|
|
#18+
Akinaнужен только у первой строки - то есть беды большой не будет, но и толку никакого, алиасы во втором и последующих запросах игнорятся, а текст длиннее... С этим сталкивался именно вопросом. Когда например в одном запросе выбирал более - менее разнородные данные. По типу: Код: sql 1. 2. 3. 4. 5. 6. То в php коде при обработке результата конструкцией: Код: php 1. 2. 3. Если не во всех блоках union указывать алиасы для столбцов, то результат запросом выбирался верный, а вот обработка таким образом давала какие-то непредсказуемые результаты. То там, то сям появлялись пустые строки вместо данных. Я думаю это может из-за того, что php видя разные названия столбцов в выборке формирует ассоциативный только массив значений или ещё что. Вроде бы помогало при этом указание делать только числовой массив: Код: php 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2016, 08:24 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=91&tid=1831382]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
297ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 215ms |
| total: | 612ms |

| 0 / 0 |
