powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите исправить говнокод
20 сообщений из 20, страница 1 из 1
Помогите исправить говнокод
    #39604587
ilya1995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите упростить запрос к БД
select distinct
if(exists(select * from scan_docs where doc_id = (select MAX(id) from docs where docs.clients_id = 19398 and docs.doc_types_id = 4)), null, (select MAX(id) from docs where docs.clients_id = 19398 and docs.doc_types_id = 4))
from scan_docs
...
Рейтинг: 0 / 0
Помогите исправить говнокод
    #39604599
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilya1995,

это не "запрос к БД"
...
Рейтинг: 0 / 0
Помогите исправить говнокод
    #39604611
Kopelly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iap,

Код: sql
1.
2.
3.
select top 1 s.ID
from scan_docs d 
join (select MAX(id) as ID from docs where docs.clients_id = 19398 and docs.doc_types_id = 4) s on d.doc_id = s.ID
...
Рейтинг: 0 / 0
Помогите исправить говнокод
    #39604612
ilya1995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iap, а куда это запрос?
...
Рейтинг: 0 / 0
Помогите исправить говнокод
    #39604616
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilya1995iap, а куда это запрос?А я откуда знаю?
Серверу этот запрос понравился?
...
Рейтинг: 0 / 0
Помогите исправить говнокод
    #39604618
ilya1995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kopelly, использую СУБД mysql, и для данного запроса существует синтаксическая ошибка, ругается на единицу
...
Рейтинг: 0 / 0
Помогите исправить говнокод
    #39604620
ilya1995,

а по твоему MySQL и MS SQL - это одно и тоже?
...
Рейтинг: 0 / 0
Помогите исправить говнокод
    #39604625
ilya1995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iap, понравился, ошибок нет, результат возвращается правильный, но хотелось бы преобразовать говнокод
...
Рейтинг: 0 / 0
Помогите исправить говнокод
    #39604626
ilya1995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый Э - Эх,

нет конечно
...
Рейтинг: 0 / 0
Помогите исправить говнокод
    #39604628
ilya1995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите упростить запрос к БД
select distinct
if(exists(select * from scan_docs where doc_id = (select MAX(id) from docs where docs.clients_id = 19398 and docs.doc_types_id = 4)), null, (select MAX(id) from docs where docs.clients_id = 19398 and docs.doc_types_id = 4))
from scan_docs
...
Рейтинг: 0 / 0
Помогите исправить говнокод
    #39604633
ilya1995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу прощения что попросил помощи не в той теме, сразу не заметил ...
...
Рейтинг: 0 / 0
Помогите исправить говнокод
    #39604668
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MySQL не поддерживает показанный синтаксис. Внимательнее выбирайте форум.
...
Рейтинг: 0 / 0
Помогите исправить говнокод
    #39604670
Kopelly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilya1995Kopelly, использую СУБД mysql, и для данного запроса существует синтаксическая ошибка, ругается на единицу
Попробуй в квадратных скобках...
...
Рейтинг: 0 / 0
Помогите исправить говнокод
    #39604675
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilya1995,

LIMIT 1 жеж, а не TOP
...
Рейтинг: 0 / 0
Помогите исправить говнокод
    #39604677
ilya1995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Запрос выполняется без ошибок. mysql Ver 14.14 Distrib 5.5.58
...
Рейтинг: 0 / 0
Помогите исправить говнокод
    #39604696
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, не туда посмотрел. Сорри.

Как я понимаю, смысл такой - ищем
Код: sql
1.
2.
3.
4.
select MAX(id) 
from docs 
where docs.clients_id = 19398  
  and docs.doc_types_id = 4

в таблице scan_docs, если находим - возвращаем Null, иначе найденный MAX(id), так?
...
Рейтинг: 0 / 0
Помогите исправить говнокод
    #39604715
ilya1995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Верно
...
Рейтинг: 0 / 0
Помогите исправить говнокод
    #39604717
ilya1995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kopelly,

Не проходит, ошибка

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
Помогите исправить говнокод
    #39604738
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда вроде так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT DISTINCT CASE WHEN scan_docs.doc_id IS NULL 
                          THEN get_max_id.max_id 
                          ELSE NULL 
                     END
FROM
(
	SELECT MAX(docs.id) max_id
	FROM docs 
	WHERE docs.clients_id = 19398  
	  AND docs.doc_types_id = 4
) get_max_id
LEFT JOIN scan_docs ON get_max_id.max_id = scan_docs.doc_id
...
Рейтинг: 0 / 0
Помогите исправить говнокод
    #39604772
ilya1995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

большое спасибо, так гораздо лучше выглядит
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите исправить говнокод
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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