Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
6 / 6 / 1
Регистрация: 06.05.2014
Сообщений: 265

Как в union использовать AS

13.02.2019, 19:16. Показов 1291. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день как на каждый из запросов UNION задать название?

SQL
1
2
3
(SELECT * FROM BOOK WHERE ID = 3) AS book1
UNION ALL
(SELECT * FROM BOOK WHERE ID = 5) AS book2
такой вариант не работает
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.02.2019, 19:16
Ответы с готовыми решениями:

union как определить из какой таблице запись после UNION?
Подскажите пожалуйста! Вот например две таблице (TEBLE_1) у которой поля row_1(BIGINT) и (TABLE_2) у которой поля row_2(TEXT) Я ИХ...

Google НЕ будет использовать Western Union
Советник Google AdSense: "Очень горько об этом говорить, но Google не будет использовать систему денежных переводов Western Union...

Где лучше всего использовать модификатор union
Вот интересно, где он в основном применяется, где его в основном программисты пишут ?!

9
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
14.02.2019, 09:26
Цитата Сообщение от new-dev Посмотреть сообщение
как на каждый из запросов UNION задать название
Зачем? Огласи задачу полностью

PS
Если пример не упрощенный, то в данном случае вообще непонятно назначение UNION
0
6 / 6 / 1
Регистрация: 06.05.2014
Сообщений: 265
14.02.2019, 09:44  [ТС]
Grossmeister, пример упрощенный, а для чего - когда сделаю fetchAll чтобы определенные ключи у массива были для каждого union'a
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
14.02.2019, 09:50
Цитата Сообщение от new-dev Посмотреть сообщение
SELECT * FROM BOOK WHERE ID = 3
Как вариант
SQL
1
2
3
4
SELECT t1.*, 
           'tab1' AS tab  -- в каждой части UNION своя метка
FROM book T1
WHERE id = 3
1
6 / 6 / 1
Регистрация: 06.05.2014
Сообщений: 265
14.02.2019, 09:57  [ТС]
Grossmeister,

SQL
1
2
3
4
5
6
7
8
9
10
SELECT SUM(daily) AS daily, SUM(weekly) AS weekly,
                    SUM(monthly) AS monthly,
                    limit_calculation AS test1
                  FROM limit_calculation
                WHERE company_id = :companyId
                UNION
                SELECT daily, weekly, monthly,
                  limit_calculation AS test2
                  FROM limit_calculation
                WHERE truck_id = :truckId
такой запрос у меня, не работает
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
14.02.2019, 10:07
Цитата Сообщение от new-dev Посмотреть сообщение
limit_calculation AS test1
В списке SELECT должны быть только названия полей, функции или литералы. В моем примере там просто некая текстовая метка, а отнюдь не наименование таблицы.
Кроме того, наименования полей в выборке определяются по первой части UNION, поэтому в последующих частях не имеет смысла давать другие алиасы тем же колонкам.
0
6 / 6 / 1
Регистрация: 06.05.2014
Сообщений: 265
14.02.2019, 12:20  [ТС]
Grossmeister, Я не совсем понял по поводу метки всё равно если я так делаю как в вашем примере у меня просто добавляется допольнительная колонка в union
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
14.02.2019, 12:23
Цитата Сообщение от new-dev Посмотреть сообщение
не совсем понял по поводу метки всё равно
SQL
1
2
3
4
5
6
7
8
9
SELECT T1.*, 'A' AS tab
FROM tab1 T1
WHERE ...
 
UNION ALL
 
SELECT T2.*, 'B'
FROM tab1 T2
WHERE ...
Доп. колонка, естественно, добавляется и служит для идентификации строк (к какой части UNION они принадлежат)
0
6 / 6 / 1
Регистрация: 06.05.2014
Сообщений: 265
14.02.2019, 12:32  [ТС]
я к тому что мне

PHP
1
$stmt->fetchAll()
возвращает вот что

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
array (
  0 => 
  array (
    'SUM(daily)' => '4750',
    'SUM(weekly)' => '2811',
    'SUM(monthly)' => '19111',
    'transaction_count' => NULL,
    'tab' => 'A',
  ),
  1 => 
  array (
    'SUM(daily)' => '1250',
    'SUM(weekly)' => '1111',
    'SUM(monthly)' => '11111',
    'transaction_count' => '1',
    'tab' => 'B',
  ),
)
возможно ли сделать без манипуляций с массивом получить ключи вместо 0 и 1 , A, B ?
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
14.02.2019, 13:13
Цитата Сообщение от new-dev Посмотреть сообщение
получить ключи
Получить ключи - это уже вопрос программы (возможно клиентской), а не SQL
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.02.2019, 13:13
Помогаю со студенческими работами здесь

Как обращаться к Union
Создал указатель на структуру Person в 19 строчке. Как обратиться к полю Union'a? Некорректное обращение к union в 30, 34, 38, 49, 56,...

Как объявить такой union?
12 именованных структур, например, RECT, и массив из 12-ти элементов того же типа. Пусть имена RectA, RectB, RectC, RectD, RectE, RectF,...

Как на C# реализовать подобие union в С++
Доброй ночи, товарищи! Подскажите, как реализовать подобие объединения union в C#? Суть проблемы в следующем: есть массив ...

Как вставить идентификатор таблицы в Union
Добрый день. Хочу сделать запрос из двух таблиц объединив UNION, но мне необходимо понимать, какие данные из какой таблицы, как это...

Как через функцию union обьединять файлы?
подскажите как через функцию union обьединять файлы?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru