Последние записи
- Дата и время изменения файла
- Правильно объединить ячейки построчно в Microsoft Office Excel
- Пример проигрывания музыки по нотам на бат-файлах (через powershell)
- Ограничение логина при регистрации символами AZ-az, А-Я, а-я и цифры
- Взвешивание любого груза на весах
- CMD/BAT: звуки (2 разных + бонус: сигнал SOS)
- CMD/BAT: Управляющие последовательности ANSI/ECMA-48
- Передать фокус элементу до отображения формы по ShowModal
- Быстрое заполнение колонтитулов на нескольких документах
- MySQL составной запрос
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
25th
Июл
MySQL составной запрос
Как правильно сделать запрос такого типа:
UPDATE in_main SET SelectionDescription='$SelectionDescription', id=('SELECT MAX('id') FROM `in_main`'+1) WHERE DocumentNumber='$DocumentNumber'
А именно меня интересует строчка
id=('SELECT MAX('id') FROM `in_main`'+1)
.
То есть мне нужно изменить id записи на последний id+1.
P.S. поле id автоинкремент, я бы использовал mysqli_insert_id, но оно работает, только если insert был использован в текущем подключении.
20th
Июн
Построение сложного SQL-запроса выборки
Eсть следующие таблицы:
- Задачи
- Работники
- Связки задач и работников (какие работники могут выполнять какую задачу)
Работников на задачу может быть как 1, так и больше. Одни и те же работники могут быть записаны на выполнение разных задач в разных комбинациях.
Например. У нас есть работники Иван, Пётр, Степан, Максим.
Есть задачи «Уборка территории», «Покраска стен», «Смазывание дверей», «Разгрузка макулатуры», «Подстригание газона»
Уборкой территории могут заниматься Иван и Пётр.
Покраской стен — Пётр и Степан.
Смазыванием дверей -Степан и Максим.
Разгрузкой макулатуры — Максим и Иван.
Подстриганием газона — Пётр.
Всё это записано вот в такие таблицы:
tasks
id
description
status
workers
id
name
tasks_workers_links
id
task_id
worker_id
Первая задача (Уборка территории), в которой задействованы Иван и Пётр, имеет статус working. Остальные задачи имеют статус wait.
Мне нужно отобрать одну задачу, которая готова идти в работу (status=wait), и ни один из её работников не задействован в задачах status=working.
Проблемы создаёт тот факт что один и то же рабочий может быть записан на разные задачи. В данном примере нужно получить только одну задачу:
| Смазыванием дверей — Степан и Максим. |
потому что Иван и Пётр, задействованные в первой таске (которая уже working) не могут учавствовать в других задачах из-за своей занятости.
Я хотел получить некий красивый JOIN на выходе, но придумать его к сожалению не смог.
Решил некрасиво следующими запросами.
Сперва берём задачи которые уже в работе
SELECT id FROM tasks WHERE status='working'
Затем берём id работников которые в этих задачах задействованы
SELECT worker_id FROM tasks_worker_links WHERE task_id IN(предыдущий запрос)
На основании этого, берём все id задач где есть работники из предыдущего запроса:
SELECT task_id FROM tasks_workers_links WHERE worker_id IN(предыдущий запрос)
Их мы должны игнорировать при выборке.
И наконец выбираем задачи которые могут пойти в работу:
SELECT * FROM tasks WHERE status='wait' AND id NOT IN(предыдущий запрос) LIMIT 1
Таким образом, я соединяю аж 4 запроса.
SELECT * FROM tasks WHERE status='wait' AND id NOT IN(
SELECT task_id FROM tasks_workers_links WHERE worker_id IN(
SELECT worker_id FROM tasks_worker_links WHERE task_id IN(
SELECT id FROM tasks WHERE status='working'
)
)
) LIMIT 1
При тысячах записей это создаст серьёзные проблемы с производительностью — вложенные запросы извлекают слишком много данных.
В общем, буду благодарен за любые идеи как это всё превратить в красивый и быстрый единый SQL.
28th
Авг
MySQL запрос. Проблема в выборе по максимальной дате
Необходимо получить данные из таблицы без повторов (группирую по двум полям), отсортированные тоже по двум полям и (в чем у меня и получился затык) с максимальной датой.
SELECT ID, Type, Name, Status, max(DT) FROM posts
WHERE Type = 'GT - 27'
OR Type = 'GT - 39'
GROUP BY Type, Name
ORDER BY Type, Name
В этом случае получаю записи несвязанные с полем DT (дата, время). То есть поле DT не соответствует остальным полям реальной записи.
Подскажите: куда мне копать?)
Может через подзапрсы? Все мои попытки в этом направлении провалились…
31st
Мар
Выполнение разных действий в зависимости от выбранного select
Как сделать выборку из id=»combobox3″ так, чтобы А и В рассчитывались по ширине, т.е. значение value подставлялось в var a. С и P рассчитывались по высоте, т.е. значение value подставлялось в var b.
<input type="number" id="editbox1" value="0"><!--Ширина--> <input type="number" id="editbox2" value="0"><!--Высота--> <div id="wb_rezult"> <span><strong><em>Результат</em></strong></span></div><!--Результат--> <select size="1" id="combobox3"><!--combobox3--> <option value="2190, 2648">А</option><!--по ширине--> <option value="2350, 2823">В</option><!--по ширине--> <option value="2490, 2997">С</option><!--по высоте--> <option value="1190, 1450">P</option><!--по высоте--> </select>
20th
Авг
Вызов хранимой процедуры и использование результатов
Swatch
Подскажите, пожалуйста, как можно из PHP вызвать хранимую процедуру MS SQL с параметрами, а затем ее использовать в качестве источника данных для списка select на форме? Обычную ХП без параметров я вызываю так:
15th
Июл
Посчитать количество пустых значений в полях
soonner
Нужна ваша помощь, у меня есть больше сотен разных полей, input , select, textareaa мне нужно узнать сколько из этих полей пустые через js конечно.
21st
Апр
Снятие выделения с пункта
fs444
У меня есть <select multiple>. Нужно, чтобы при первом клике на любой его пункт в первый раз пункт выделялся, а при повторном клике выделение с пункта снималось.
Сейчас вижу два пути:
12th
Ноя
Получить ip адрес и сравнить с ip из бд
Стоит следующая задача: получить IP-адрес обратившегося к PHP ПК и сравнить данный IP-адрес с IP-адресами в таблице БД. (читать всё…)
23rd
Сен
SQL-запрос в три таблицы
Есть три таблицы, с абсолютно одинаковой структурой, но данными на разных языках. При выполнении запроса. Как на выходе получить результат из всех трех таблиц? (читать всё…)
Облако меток
реестр ассемблер timer TBitMap SaveToFile ShellExecute программы массив советы word MySQL SQL ListView pos random компоненты дата LoadFromFile form база данных сеть html php RichEdit indy строки Win Api tstringlist Image мысли макросы Edit ListBox office C/C++ memo графика StringGrid поиск canvas файл Pascal форма Файлы интернет Microsoft Office Excel excel winapi журнал ПРОграммист DelphiКупить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту

пеллетные котлы

Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)


