powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запросы
6 сообщений из 6, страница 1 из 1
Запросы
    #39600915
untilthedayidie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня есть 3 таблицы
Опишу самые главные колонки
Таблица клиент с id клиентом и именем, Товар с id товаром и ценой, Заказ с id товаром
Как мне вывести клиента с наибольшей суммой заказа
...
Рейтинг: 0 / 0
Запросы
    #39600917
untilthedayidie,

читать про JOIN
После того, как научишься соединять таблицы - читать про GROUP BY и SUM
Когда научишься группировать - читай про ORDER BY и LIMIT
...
Рейтинг: 0 / 0
Запросы
    #39601298
Лихтер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Неплохо бы их связать через внешние ключи.
...
Рейтинг: 0 / 0
Запросы
    #39601464
untilthedayidie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кажется, вы меня неправильно поняли, моя проблема вот в чем, извините, наверное, стоило сразу написать. Нас знакомили с бд на примере Access(не знаю почему), так вот там запросы сохраняются и ты постоянно можешь вытащить результат. Допустим, делается оно вот так там:
Запрос1
SELECT Klient.CodeKlient, SUM(Tovar.CenaEd*Zakaz.Kolich)
FROM Klient INNER JOIN (Tovar INNER JOIN Zakaz ON Tovar.CodeTovar=Zakaz.CodeTovar) ON Klient.CodeKlient=Zakaz.CodeKlient
GROUP BY Klient.CodeKlient;
Запрос2
SELECT Max([Expr1001]) AS Expr1
FROM Query3;
Запрос3
SELECT Klient.Name, Query4.Expr1
FROM (Klient INNER JOIN Query3 ON Klient.CodeKlient=Query3.CodeKlient) INNER JOIN Query4 ON Query3.Expr1001=Query4.Expr1;

Моя проблема в том, что я не понимаю, как это объединить в обычном MySQL, мб я чего-то не дочитал, подскажите, пожалуйста.
...
Рейтинг: 0 / 0
Запросы
    #39601551
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
untilthedayidieНас знакомили с бд на примере Access(не знаю почему), так вот там запросы сохраняются и ты постоянно можешь вытащить результат.То, что в терминах MS Access называется "запрос", во всех СУБД именуется термином View.

untilthedayidieя не понимаю, как это объединить в обычном MySQL
Первый вариант - то, что в Access сформировано как статический запрос, создать в MySQL как View.
Второй вариант - в источнике данных последнего запроса в секции FROM заменяем имя статического запроса на его текст, обрамлённый скобками, а имя используется как алиас, т.е., например, фрагмент
Код: sql
1.
Klient INNER JOIN Query3 


превращается в
Код: sql
1.
Klient INNER JOIN  (полный текст запроса Query3) AS  Query3 
...
Рейтинг: 0 / 0
Запросы
    #39601553
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В последнем случае следует дополнительно обработать вставляемый текст так, чтобы в нём и во внешнем запросе не было одноимённых таблиц (т.е. уникализовать имена и алиасы).
Кстати, второй способ вполне работает и в Access, когда надо избавиться от статических подзапросов и всё объединить в один запрос. Вот только такой сборный запрос категорически не рекомендуется переводить в режим конструктора - помрёт.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запросы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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