powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Почему не работает или так нельзя?
13 сообщений из 13, страница 1 из 1
Почему не работает или так нельзя?
    #39709905
Валерий666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть вот такой запрос:
Код: sql
1.
2.
3.
4.
SELECT *,GROUP_CONCAT(execute.exefio ORDER BY execute.exenum SEPARATOR '\n') as exe 
FROM register  LEFT JOIN execute ON register.docid = execute.docid 
 WHERE (register.docid<>0) AND (datecreate between '2018-09-01' AND '2018-09-28')
 AND (exe LIKE '%Мигован А.К.%') GROUP BY register.docid



Ругается на то что отсутствует поле "exe", хотя представления коннектор вроде как впитывает, т.е. запрос а ля:
Код: sql
1.
2.
3.
4.
SELECT *,GROUP_CONCAT(execute.exefio ORDER BY execute.exenum SEPARATOR '\n') as exe 
FROM register  LEFT JOIN execute ON register.docid = execute.docid 
 WHERE (register.docid<>0) AND (datecreate between '2018-09-01' AND '2018-09-28')
GROUP BY register.docid




Проходит на ура...
Delphi 7, MyDAC 8.4. Что посоветуете? Как обратиться тогда к группируемому полю?
...
Рейтинг: 0 / 0
Почему не работает или так нельзя?
    #39709910
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
Select * From
(
SELECT *,GROUP_CONCAT(execute.exefio ORDER BY execute.exenum SEPARATOR '\n') as exe 
FROM register  LEFT JOIN execute ON register.docid = execute.docid 
 WHERE (register.docid<>0) AND (datecreate between '2018-09-01' AND '2018-09-28')
GROUP BY register.docid
) a
 Where (a.exe LIKE '%Мигован А.К.%')
...
Рейтинг: 0 / 0
Почему не работает или так нельзя?
    #39709914
Валерий666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
Select * From
(
SELECT *,GROUP_CONCAT(execute.exefio ORDER BY execute.exenum SEPARATOR '\n') as exe 
FROM register  LEFT JOIN execute ON register.docid = execute.docid 
 WHERE (register.docid<>0) AND (datecreate between '2018-09-01' AND '2018-09-28')
GROUP BY register.docid
) a
 Where (a.exe LIKE '%Мигован А.К.%')


эммм, ругается на дубликат поля, в register есть поле id уникальное.
...
Рейтинг: 0 / 0
Почему не работает или так нельзя?
    #39709921
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерий666Что посоветуете?Читать документацию
Валерий666Как обратиться тогда к группируемому полю?Использовать HAVING
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SELECT
  *,
  GROUP_CONCAT(execute.exefio ORDER BY execute.exenum SEPARATOR '\n') as exe 
FROM
  register
  LEFT JOIN execute ON register.docid = execute.docid 
WHERE
  (register.docid<>0) AND
  (datecreate between '2018-09-01' AND '2018-09-28')
GROUP BY
  register.docid
HAVING
  exe LIKE '%Мигован А.К.%'
...
Рейтинг: 0 / 0
Почему не работает или так нельзя?
    #39709924
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Валерий666defecator
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
Select * From
(
SELECT *,GROUP_CONCAT(execute.exefio ORDER BY execute.exenum SEPARATOR '\n') as exe 
FROM register  LEFT JOIN execute ON register.docid = execute.docid 
 WHERE (register.docid<>0) AND (datecreate between '2018-09-01' AND '2018-09-28')
GROUP BY register.docid
) a
 Where (a.exe LIKE '%Мигован А.К.%')



эммм, ругается на дубликат поля, в register есть поле id уникальное.
ну сделай ему алиас, тем более, тащить поля через * считается дурнейшим тоном
...
Рейтинг: 0 / 0
Почему не работает или так нельзя?
    #39710095
AWSVladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecatorну сделай ему алиас, тем более, тащить поля через * считается дурнейшим тоном
А вот нЭнадо на * бочку катить :)
Постоянно пользуюсь, но правда всегда с алиасом.
...
Рейтинг: 0 / 0
Почему не работает или так нельзя?
    #39710133
bk0010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AWSVladimirdefecatorну сделай ему алиас, тем более, тащить поля через * считается дурнейшим тоном
А вот нЭнадо на * бочку катить :)
Постоянно пользуюсь, но правда всегда с алиасом.Очень зря: увеличиваете нагрузку на сервер, организуете мусорный трафик по сети, можете без необходимости вытащить из БД в сеть конфиденциальные данные, а если в таблице будет blob, то получите тормоза на пустом месте (может даже засрете весь кэш у сервера, если блоб лежит рядом с базой, а не в blobdbspace)
...
Рейтинг: 0 / 0
Почему не работает или так нельзя?
    #39710143
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
bk0010AWSVladimirпропущено...

А вот нЭнадо на * бочку катить :)
Постоянно пользуюсь, но правда всегда с алиасом.Очень зря: увеличиваете нагрузку на сервер, организуете мусорный трафик по сети, можете без необходимости вытащить из БД в сеть конфиденциальные данные, а если в таблице будет blob, то получите тормоза на пустом месте (может даже засрете весь кэш у сервера, если блоб лежит рядом с базой, а не в blobdbspace)
+100
звёздочка в запросе - признак пофигизма
...
Рейтинг: 0 / 0
Почему не работает или так нельзя?
    #39710182
AWSVladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator+100
звёздочка в запросе - признак пофигизма
Нас админ базы всех построил, поэтому таблицы только с числовыми, только со строками и отдельные таблицы с блобами, миксов практически нет и если появляются, он с ними беспощадно борется..

Говорит, что ораклу тогда на порядок легче дышится из-за страничного чтения, поэтому если в датасете работаешь с таблицей, то более чем в 50% всю ее юзаешь.

Мало того. кроме основной таблицы с числовыми данными, есть таблицы со вспомогательными, по такой же системе.:)
В общем 3-я нормальная форма нам только снится :)
...
Рейтинг: 0 / 0
Почему не работает или так нельзя?
    #39710183
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AWSVladimirdefecator+100
звёздочка в запросе - признак пофигизма
Нас админ базы всех построил, поэтому таблицы только с числовыми, только со строками и отдельные таблицы с блобами, миксов практически нет и если появляются, он с ними беспощадно борется..

Говорит, что ораклу тогда на порядок легче дышится из-за страничного чтения, поэтому если в датасете работаешь с таблицей, то более чем в 50% всю ее юзаешь.

Мало того. кроме основной таблицы с числовыми данными, есть таблицы со вспомогательными, по такой же системе.:)
В общем 3-я нормальная форма нам только снится :)
Ну и при чем тут "*"?
...
Рейтинг: 0 / 0
Почему не работает или так нельзя?
    #39710190
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AWSVladimirdefecator+100
звёздочка в запросе - признак пофигизма
Нас админ базы всех построил, поэтому таблицы только ...
...
... :)
А вообще - п....ц какой-то. Админ рулит разработчиками, даже представить не могу.
...
Рейтинг: 0 / 0
Почему не работает или так нельзя?
    #39710209
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bk0010Очень зря: увеличиваете нагрузку на сервер, организуете мусорный трафик по сетиМожно подумать, перечислив все полю поименно вместо звездочки мусорного трафика не будет.
...
Рейтинг: 0 / 0
Почему не работает или так нельзя?
    #39710224
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Relic Hunterbk0010Очень зря: увеличиваете нагрузку на сервер, организуете мусорный трафик по сетиМожно подумать, перечислив все полю поименно вместо звездочки мусорного трафика не будет.
очень-очень редко бывают нужны ну прямо все 100500 полей в запросе
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Почему не работает или так нельзя?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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