Форум об интернет-маркетинге
Вернуться   Форум об интернет-маркетинге > Технические вопросы > Веб-строительство

Ответ
 
Опции темы
Старый 26.10.2021, 20:39   #1
burunduk
попробуй отними
Профессор
 
Аватар для burunduk
 
Регистрация: 14.07.2020
Сообщений: 882
Сказал(а) спасибо: 1,021
Получил(а) "Спасибо": 2,086
Нарушения: 0/0 (0)
Репутация: 660509

Thread Starter SQL запрос на обновление

есть 2 таблицы
t1 с полями
id
Значение
ПерваяДата
ПоследняяДата
....

t2 с полями
id_1
Дата
....

они связаны по полям id ->id_1 соотношение 1 ко многим
необходимо обновить поля в первой таблице по данным второй
точнее найти минимальные даты и максимальные даты

запарился с синтаксисом не получается, выборка делается легко, а на UPDATE всё ломается

PHP код:
SELECT t1.Значениеt1.ПерваяДатаMin(t2.Дата) AS [Min-Дата]
FROM t1 INNER JOIN t2 ON t1.[id] = t2.[id_1]
GROUP BY t1.Значениеt1.ПерваяДата
burunduk вне форума   Ответить с цитированием
Старый 26.10.2021, 20:46   #2
ziliboba0213
Позитив =)
Академик
 
Аватар для ziliboba0213
 
Регистрация: 21.06.2020
Адрес: Санкт-Петербург
Сообщений: 4,360
Сказал(а) спасибо: 24,594
Получил(а) "Спасибо": 13,412
Нарушения: 0/0 (0)
Репутация: 957405

По умолчанию Re: SQL запрос на обновление

Может проще через php несколькими запросами? И не очень понятно, что нужно сделать - ненавижу эти запросы навороченные
ziliboba0213 вне форума   Ответить с цитированием
Старый 26.10.2021, 20:51   #3
burunduk
попробуй отними
Профессор
 
Аватар для burunduk
 
Регистрация: 14.07.2020
Сообщений: 882
Сказал(а) спасибо: 1,021
Получил(а) "Спасибо": 2,086
Нарушения: 0/0 (0)
Репутация: 660509

Thread Starter Re: SQL запрос на обновление

ziliboba0213, sql намного быстрее работает
надо обновить данные в первой таблице
выбрать из второй минимальную дату из совпадающих по полям id строк
burunduk вне форума   Ответить с цитированием
Старый 26.10.2021, 20:58   #4
ziliboba0213
Позитив =)
Академик
 
Аватар для ziliboba0213
 
Регистрация: 21.06.2020
Адрес: Санкт-Петербург
Сообщений: 4,360
Сказал(а) спасибо: 24,594
Получил(а) "Спасибо": 13,412
Нарушения: 0/0 (0)
Репутация: 957405

По умолчанию Re: SQL запрос на обновление

Нашел пример, может помогет:
PHP код:
UPDATE table1table2 SET table1.title 'fdsgffd' WHERE table1.id table2.id 
или вот:
PHP код:
UPDATE table1 INNER JOIN table2 ON table1.field1 table2.field2 SET table1.field3 table2.field4 WHERE 
Может на мысль натолкнет. Я сам эти запросы не люблю ппц, мудреные больно

Или вот тут: UPDATE с условием из другой таблицы
ziliboba0213 вне форума   Ответить с цитированием
Старый 26.10.2021, 21:07   #5
burunduk
попробуй отними
Профессор
 
Аватар для burunduk
 
Регистрация: 14.07.2020
Сообщений: 882
Сказал(а) спасибо: 1,021
Получил(а) "Спасибо": 2,086
Нарушения: 0/0 (0)
Репутация: 660509

Thread Starter Re: SQL запрос на обновление

ziliboba0213, не это всё не то, самое близкое что нашёл это
PHP код:
UPDATE Sales.SalesPerson  
SET SalesYTD 
SalesYTD +   
    (
SELECT SUM(so.SubTotal)   
     
FROM Sales.SalesOrderHeader AS so  
     WHERE so
.OrderDate = (SELECT MAX(OrderDate)  
                           
FROM Sales.SalesOrderHeader AS so2  
                           WHERE so2
.SalesPersonID so.SalesPersonID)  
     AND 
Sales.SalesPerson.BusinessEntityID so.SalesPersonID  
     GROUP BY so
.SalesPersonID); 
но откуда берётся SubTotal и что это вообще такое так и не понял
burunduk вне форума   Ответить с цитированием
Старый 26.10.2021, 21:10   #6
ziliboba0213
Позитив =)
Академик
 
Аватар для ziliboba0213
 
Регистрация: 21.06.2020
Адрес: Санкт-Петербург
Сообщений: 4,360
Сказал(а) спасибо: 24,594
Получил(а) "Спасибо": 13,412
Нарушения: 0/0 (0)
Репутация: 957405

По умолчанию Re: SQL запрос на обновление

Цитата:
Сообщение от burunduk Посмотреть сообщение
ziliboba0213, не это всё не то, самое близкое что нашёл это
PHP код:
UPDATE Sales.SalesPerson  
SET SalesYTD 
SalesYTD +   
    (
SELECT SUM(so.SubTotal)   
     
FROM Sales.SalesOrderHeader AS so  
     WHERE so
.OrderDate = (SELECT MAX(OrderDate)  
                           
FROM Sales.SalesOrderHeader AS so2  
                           WHERE so2
.SalesPersonID so.SalesPersonID)  
     AND 
Sales.SalesPerson.BusinessEntityID so.SalesPersonID  
     GROUP BY so
.SalesPersonID); 
но откуда берётся SubTotal и что это вообще такое так и не понял
"Например, вам необходимо узнать какая совокупная общая заработная плата всех сотрудников, чья зарплата превышает 20 000 долларов в год":
PHP код:
SELECT SUM(salary) AS "Total Salary"
  
FROM employees
 WHERE salary 
20000
ziliboba0213 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
можно ли узнать куда отправляется get-запрос со стороннего сайта? sony Курилка 0 24.10.2021 21:49
MySQL запрос - удалить 1 и 2-ух символьные слова sanek1991 Веб-строительство 12 18.08.2021 03:23
Яндекс Обновление Y1 Хаагенти Яндекс 46 23.06.2021 00:03
Обновление сайта охg Биржа услуг 3 31.10.2020 21:41


Текущее время: 14:16. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc. Перевод: zCarot