Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
75 / 75 / 13
Регистрация: 02.02.2012
Сообщений: 462

Запрос на несколько таблиц

21.09.2013, 20:44. Показов 1490. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
SQL
1
2
3
4
5
SELECT COUNT(uLogin) FROM users 
UNION 
SELECT SUM(dMoney) FROM deposits
 UNION 
SELECT SUM(wMoney) FROM withdraw
рационально ли так делать запрос или можно как то получше? и еще пытаюсь добавить вот это
SQL
1
2
UNION
SELECT concat_ws(' ', uLogin, dMoney) FROM deposits JOIN users ON uId = dUserId ORDER BY deposits.dUserId
ошибка #1054 - Unknown column 'deposits.dUserId' in 'order clause'
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.09.2013, 20:44
Ответы с готовыми решениями:

Как сделать запрос сразу в несколько таблиц?
Как сделать запрос сразу в несколько таблиц?

Связь таблиц и запрос на вывод из множеств таблиц
Добрый день! Вот решил создать базу данных и связать их, а потом вывести из нескольких таблиц значения. 1. Правильно ли все связано как...

Как всклеиваются несколько таблиц?
Люди, здравствуйте. Как работает джойн, если таблиц больше двух? Есть 5 таблиц и их надо склеить. Но при этом 4 из 5 таблиц -...

7
268 / 25 / 5
Регистрация: 25.11.2012
Сообщений: 93
21.09.2013, 20:59
Цитата Сообщение от fireridlle Посмотреть сообщение
рационально ли так делать запрос или можно как то получше
Смотря что надо получить.

Ну хотя бы явно что можно сделать - union на union all поменять, это в первом запросе (конечно если я логику вашу понял правильно, вывод просто результатов агрегирования в датасет?)
1
75 / 75 / 13
Регистрация: 02.02.2012
Сообщений: 462
21.09.2013, 21:19  [ТС]
потом результат нужно вывести на веб страницу. как быть с ошибкой #1054 - Unknown column 'deposits.dUserId' in 'order clause'? оно появляется только если указывать order by

уже нашел ответ на свой вопрос)
0
1313 / 945 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
21.09.2013, 22:21
Цитата Сообщение от fireridlle Посмотреть сообщение
SQL
1
2
3
4
5
SELECT COUNT(uLogin) FROM users 
UNION 
SELECT SUM(dMoney) FROM deposits
 UNION 
SELECT SUM(wMoney) FROM withdraw
рационально ли так делать запрос или можно как то получше?
Результатом этого запроса вполне может «вдруг» оказаться таблица из двух(!) строк:
Unknown column
80.00
95.00
Как вы определите, что означает каждое из чисел?

и еще пытаюсь добавить вот это
SQL
1
2
UNION
SELECT concat_ws(' ', uLogin, dMoney) FROM deposits JOIN users ON uId = dUserId ORDER BY deposits.dUserId
ошибка #1054 - Unknown column 'deposits.dUserId' in 'order clause'
Если наплевать на преобразования типов, то можно последний селект взять в скобки — с ними сработает

А вообще — лучше использовать UNION ALL, и добавлять идентифицирующее поле в каждый селект, чтоб было понятно, откуда что прилетело, типа: select 1 typ,a from tab_a union all select 2, b from tab_b
1
75 / 75 / 13
Регистрация: 02.02.2012
Сообщений: 462
22.09.2013, 10:05  [ТС]
Цитата Сообщение от cygapb-007 Посмотреть сообщение
Как вы определите, что означает каждое из чисел?
по последовательности
0
1313 / 945 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
22.09.2013, 10:48
Цитата Сообщение от fireridlle Посмотреть сообщение
по последовательности
А вы в курсе, что строки из результата запроса выдаются в произвольной последовательности, удобной с точки зрения сервера для извлечения данных, и никак не связаны с порядком следования подзапросов в запросе?

И потом, подзапросов 3, а итоговых строк две — почему такое может быть?
1
75 / 75 / 13
Регистрация: 02.02.2012
Сообщений: 462
22.09.2013, 16:35  [ТС]
тогда как можно сделать?явно не делать несколько запросов...
0
1313 / 945 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
22.09.2013, 18:24
Уже писал раньше, кпк сделать... Оки, еще раз напишу
MySQL
1
2
3
4
5
6
SELECT 1 id, COUNT(uLogin) val FROM users 
UNION ALL
SELECT 2, SUM(dMoney) FROM deposits
UNION ALL
SELECT 3, SUM(wMoney) FROM withdraw
ORDER BY id;
order by — не обязательно, но проще отсортировать сразу в SQL, чем потом проверять (или сортировать) в PHP. Сервер обязан будеть предоставить результат в указанном порядке, даже если придется дополнительно сортировать строки.

Использование вместо UNION операции UNION ALL запрещает использовать операцию исключения дублирующихся строк из результата (DISTINCT), из-за которой в результате могла бы оказаться даже одна строка (при совпадении всех чисел в подзапросах). Так же это повышает скорость выполнения запроса.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.09.2013, 18:24
Помогаю со студенческими работами здесь

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

Добавление в записи несколько таблиц
Здравствуйте, есть несколько таблиц с префиксом name_, как одним запросом добавить запись во все таблицы с этим префиксом (количество...

Одна или несколько таблиц?
Всем доброго времени суток. Подскажите как поступить в таком случае: нужно автоматически привязывать информацию к какой либо категории....

Вставка в несколько таблиц, связанных foreign keys
Всем привет! Делаю такую структуру бд: CREATE TABLE IF NOT EXISTS `region` ( `reg_ID` INT(11) NOT NULL AUTO_INCREMENT, ...

Перечислить в 1 столбце несколько значений из других таблиц
2 таблицы: - game; Столбцы: idgame firstteam secondteam - chempionship. Столбцы:


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru