Size: a a a

2020 December 25

JH

Jas Hakimov in dbGeeks
having вроде не работает с псевдонимами
источник

EK

Evgeniy Kuvshinov in dbGeeks
работает
источник

SU

Sharofbek Udev21 in dbGeeks
Jas Hakimov
having вроде не работает с псевдонимами
хотя попробовал ?
источник

JH

Jas Hakimov in dbGeeks
Заметим, что в предложении HAVING нельзя использовать псевдоним (Avg_price), используемый для именования значений агрегатной функции в предложении SELECT. Дело в том, что предложение SELECT, формирующее выходной набор запроса, выполняется предпоследним перед предложением ORDER BY. Ниже приведен порядок обработки предложений в операторе SELECT:
FROM
WHERE
GROUP BY
HAVING
SELECT
ORDER BY
источник

JH

Jas Hakimov in dbGeeks
Sharofbek Udev21
хотя попробовал ?
пробовал
источник

EK

Evgeniy Kuvshinov in dbGeeks
Jas Hakimov
пробовал
источник

JH

Jas Hakimov in dbGeeks
у меня бд informix
источник

EK

Evgeniy Kuvshinov in dbGeeks
как костыль можно писать count(*) > 1
источник

EK

Evgeniy Kuvshinov in dbGeeks
источник

JH

Jas Hakimov in dbGeeks
во, я так и делал, но результат был настолько огромным, что не поверил, что запрос правильный)
источник

JH

Jas Hakimov in dbGeeks
спасибо
источник

P

Phoenix in dbGeeks
Jas Hakimov
having вроде не работает с псевдонимами
Это очень сильно зависит от СУБД к примеру ORACLE в GROUP BY и HAVING нельзя использовать alias.

В MYSQL можно использовать, но при необходимости это можно отключить с помощь sql_mode = ONLY_FULL_GROUP_BY
Postgres не уверен - надо глянуть.
источник

JH

Jas Hakimov in dbGeeks
да, уже ознакомился, но спасибо!)
источник

AD

Alex Dzyuba in dbGeeks
Ребят, такой вопрос, скорее всего, простой - есть несколько сущностей продукта:
- DVD-диски
- книги
- мебель
У всех сущностей есть поля: name, price. Но у типа продукта есть свои поля: DVD-диски - размер в мегабайтах, книги - вес в килограммах, мебель - размеры в виде ширины, высоты.

Нужно по этим сущностям построить базу данных.
Как здесь нужно грамотно организовать таблицы?
Пока что пришел к тому, что нужно создать таблицу product c полями name, price и отдельные таблицы для каждого типа продукта, и, если нужно получить информацию про продукт, нужно тогда обязательно применять JOIN к соответсвующей таблице. Норм подход или можно получше сделать?
источник

AD

Alex Dzyuba in dbGeeks
И делать запросы типа таких, чтобы получить все продукты:
источник

AD

Alex Dzyuba in dbGeeks
Но меня смущает, что в PHP получаем пухлые объекты такие с null полями.
источник

AD

Alex Dzyuba in dbGeeks
То есть основной вопрос: как грамотно организовать  в базе данных наследие от родительской сущности Product к сущностям-детям Book, Disc и Furniture?
источник
2020 December 26

VK

Vladimir Karamazov in dbGeeks
Если таких разнящихся колонок немного, я бы сделал одну разреженную (с NULL-ами) таблицу products, чтобы избежать join-ов: https://www.martinfowler.com/eaaCatalog/singleTableInheritance.html
Это называется Table-Per-Hierarchy или Single Table Inheritance

Также есть другие подходы:
https://stackoverflow.com/a/554552
И вот то же самое, но другими словами и примером реализации:
https://stackoverflow.com/a/190306
https://stackoverflow.com/a/3579462
источник

VK

Vladimir Karamazov in dbGeeks
Также, внезапно, Postgresql поддерживает наследование https://medium.com/dev-genius/using-inheritance-in-postgresql-434158b932a4
Не знал этого, мне кажется, postgresql умеет всё 😁
источник

VK

Vladimir Karamazov in dbGeeks
источник