- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
SELECT media.*
FROM media
INNER JOIN (
SELECT hall_id, MIN(position) AS minpos
FROM media
GROUP BY zal_id
) AS b ON media.hall_id = b.hall_id AND
IFNULL(media.position, 0) = IFNULL(b.minpos, 0)
WHERE media.hall_id IN (...)
GROUP BY media.hall_id
guest 28.10.2014 21:14 # −2
В первом случае Вам надо читать ман, а во втором случае Вам надо завязывать с программированием, ибо человеку, работающему с MySQL нет места в профессии.
bormand 29.10.2014 06:22 # +1
Эй-эй. Не обижай слоньку. Это ж лучшая опенсурсная база...
Анонимус 30.10.2014 00:18 # 0
inkanus-gray 30.10.2014 02:50 # 0
Анонимус 30.10.2014 03:27 # 0
inkanus-gray 30.10.2014 03:55 # +2
bormand 30.10.2014 06:34 # +2
В опенсурсе каждый начинает свой проект, вместо того, чтобы объединиться и доделать. Ведь начинать, как правило, интересней, чем доводить до ума. Из-за этого там 100500 плееровЮ, десктопов и прочего говна, и все кривые.
defecate-plusplus 30.10.2014 08:44 # +3
crastinus 30.10.2014 09:33 # 0
Анонимус 30.10.2014 16:01 # 0
Анонимус 30.10.2014 16:01 # 0
defecate-plusplus 29.10.2014 16:40 # +1
bliznezz 29.10.2014 13:10 # −1
что за zal_id?
Horse2 29.10.2014 13:15 # −3
Только, если можно, без политики.
guest 29.10.2014 19:10 # −5
bliznezz 29.10.2014 13:35 # 0
SELECT media.* с GROUP BY , это..
ты на правильный сайт попал!
bormand 29.10.2014 16:35 # −1
guest 29.10.2014 19:14 # −5
Efog 04.11.2014 18:55 # 0
guest 04.11.2014 19:09 # 0
bormand 04.11.2014 19:28 # +2
Чтобы ответ был детерминированным, все поля должны попасть либо в group by, либо в какую-нибудь агрегирующую функцию (avg, min и т.п.). И все вменяемые СУБД это проверяют.
Мускуль же позволяет оставить поле и без группировки и без агрегации. В итоге он выбирает какое-то значение из группы. Какое именно - а хуй знает. Всё зависит от фазы луны и настроения оптимизатора.
В общем очередная говнофича мускуля, включенная по умолчанию.
3.14159265 05.11.2014 17:12 # +1
>В общем очередная говнофича мускуля, включенная по умолчанию.
Вроде в T-SQL так же. Хотя я точно не помню включено ли оно по дефолту.
bormand 05.11.2014 17:21 # +2
3.14159265 05.11.2014 17:54 # 0
Ну это ж РАСШИРЕНИЕ! В ANSI ж дураки сидят, запрещают всё.
http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc36272.1570/html/commands/X96182.htm
bormand 05.11.2014 18:07 # 0
В мускуле выбирается неизвестно какая строка. В transact-sql - все, просто сгруппированные и заагрегированые поле в них дублируются - т.е. это всего лишь безобидный аналог over'а, а не недетерминированная питушня.
Анонимус 05.11.2014 21:36 # 0
а как же
Column 'FOOO' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.?
bormand 05.11.2014 21:45 # 0
Анонимус 05.11.2014 21:50 # +2
3.14159265 05.11.2014 22:58 # 0
Ну вообще-то они по своему обыкновению спёрли его, потом расширили/переделали. Как ту же жабу, например.
Может просто опцию по дефолту выключили, а она где-то там в недрах и сидит.
Анонимус 05.11.2014 23:10 # 0
Но я думаю что от него уже ничего не осталось.
Собссно NT тоже сделали на основе кое-какой операционки)
3.14159265 05.11.2014 23:13 # 0
> Но я думаю что от него уже ничего не осталось.
Но они во многом похожи. Синтаксис паскальный, опции и прочее.
defecate-plusplus 05.11.2014 22:13 # 0
Анонимус 05.11.2014 22:17 # +1
bormand 05.11.2014 18:13 # 0
Вот почему-то все пытаются навязать мне свои расширения... gcc, msvs, mysql... Все включают расширения по-умолчанию, и я почему-то должен их отключать, чтобы случайно не поюзать (или, в случае с мускулем, не залететь на что-нибудь ужасное). Ладно, блин, платные проги - можно списать на vendor lock. Но опенсурс то зачем этим страдает?
Имхо, по умолчанию, система должна работать максимально близко к стандарту. А если мне чего-то не хватит - так и быть, включу.
Анонимус 05.11.2014 21:32 # +1
MS-SQL -- няша, и он бросает ошибку в таком слуае
Анонимус 05.11.2014 22:01 # 0
Efog 05.11.2014 22:07 # 0
Анонимус 05.11.2014 22:10 # 0
Зачем Вам вообще реляционная база?
Efog 05.11.2014 22:12 # 0
Анонимус 05.11.2014 22:15 # 0
bormand 05.11.2014 23:07 # 0
Если нету группировок да джойнов, а нужна только выборка документов по ключу - само то.
Efog 05.11.2014 23:08 # 0
bliznezz 29.10.2014 13:38 # −1
select hall_id, isnull(position,0) as min_position
from media
group by hall_id
having isnull(position,0) = min (isnull(position,0))
bormand 29.10.2014 16:36 # −1
guest 29.10.2014 19:14 # −5
guest 29.10.2014 19:33 # −5