@symfony_php

Страница 538 из 1418
Sergey
29.12.2017
13:32:11
ну лабы я за практику не считаю, это так... сделал и забыл
ну тут опять же - весь смак был в общении с преподавателями. То есть если по дефолтну идти то да, врядли чему-то можно научиться. Таких большинство а потому не вижу смысла преподам вкалывать ради тех кому это не нужно

Bohdan
29.12.2017
13:32:13
$iD
29.12.2017
13:32:23
я отошел от дел)
блин, знал бы - пошёл к вам на собес :D

Dmitry
29.12.2017
13:33:36
да не зависит от подхода, через пару лет ты ничего не вспомнишь, если эти два года не занимался ... тем более джойны, они часто вообще на набивание руки, опыт тут важнее теории

Google
Sergey
29.12.2017
13:34:05
согласись, вполне себе возможно такого джуна найти)

Konstantin
29.12.2017
13:34:31
ну да

джойн не шибко сложный

где-то даже табличка на стековерфлоу валялась с объяснением иннер и аутер и прочего

в картинках, легко и доступно

Dmitry
29.12.2017
13:35:19
я в свое время задавал простую задачку - есть новости и категории "многие ко многим", выбрать id новостей, которые не принадлежат категории 5... да почти никто не решал, хоть мидл, хоть сеньор

Sergey
29.12.2017
13:35:25
ну вот берешь ноут, даешь кандидату на каком-нибудь sqlfiddle и врубаешь запись экрана)

Dmitry
29.12.2017
13:35:40
в лучшем случае делали через NOT IN

Vasily
29.12.2017
13:37:06
)))

Dmitry
29.12.2017
13:37:15
ну вот не сдал ;)

Vasily
29.12.2017
13:37:17
!= - красавчик, хуле

Google
Konstantin
29.12.2017
13:39:02
хм...

задачка антересная

Dmitry
29.12.2017
13:39:06
я же прошу не записи из таблицы связей, категория в которых не равна 5, я прошу "новости, которые не принадлежат 5-й категори"... вполне бизнес формулировка ;)

Konstantin
29.12.2017
13:39:08
дай прикину

Sergey
29.12.2017
13:39:46
я же прошу не записи из таблицы связей, категория в которых не равна 5, я прошу "новости, которые не принадлежат 5-й категори"... вполне бизнес формулировка ;)
я бы тебя послал если честно ибо задачу этот запрос решает) либо уточни что тебе не айдишка нужна а сама новость)

но тогда просто джойн

формулировка задачи выстроена так что бы показать что ты дартаньян)

Konstantin
29.12.2017
13:40:26
короч каты берем, новости ляпаем и != cat.id 5

Dmitry
29.12.2017
13:41:13
формулировка задачи выстроена так что бы показать что ты дартаньян)
тебе ничего не мешает уточнить... тем более я тут сокращаю, да, писать много

Evgeniy
29.12.2017
13:41:22
здесь хитрая формулировка. по-моему, наоборот нужно вывести новости с категорией 5

Sergey
29.12.2017
13:41:28
Dmitry
29.12.2017
13:41:34
новости, которые не принадлежат категории с id = 5

Konstantin
29.12.2017
13:41:51
остальным категориям могут принадлежать ?

Dmitry
29.12.2017
13:42:00
еще точнее - новости, которые не входят в категорию с id=5

Dmitry
29.12.2017
13:42:30
любым... могут быть вообще без категории

Konstantin
29.12.2017
13:42:39
ок, допустим новость входит в категорию 5 и 2

а

забей

Google
Konstantin
29.12.2017
13:42:49
туплю

Dmitry
29.12.2017
13:42:52
ну значит она нам не подходит ;)

Alexandr
29.12.2017
13:43:28
select n.* from news n left join news_categories on news_categories.news_id = n.id and news_categories.category_id = 5 where news_categories.category_id is null

Sergey
29.12.2017
13:43:36
NOT EXISTS тебя устроит?)

Konstantin
29.12.2017
13:43:59
select news_id from categories as c left JOIN news as n on c.id = n.cat_idid where category_id != 5

что-то где-то так

news id поправь на звездочку

ааа

Dmitry
29.12.2017
13:44:56
not exists меня устроит, но вариант александра красивее и, возмножно, оптимальнее - тут, конечно, анализировать нужно

Konstantin
29.12.2017
13:44:59
я вкурил

Sergey
29.12.2017
13:45:10
SELECT n.id FROM news n WHERE NOT EXISTS (SELECT 1 FROM news_categories WHERE news_id=n.id AND category_id !+ 5)

чем красивее?)

Konstantin
29.12.2017
13:45:42
но если новость принадлежит c.id = 3, а 3 категория является дочкой id5 - эту новость трогаем ?

или нет

Konstantin
29.12.2017
13:46:12
тогда моё тоже покатит

но я не уверен в работоспособности запроса )

ибо сплю уже

и джойн по-моему там нужен райт

а не лефт

Google
Anton
29.12.2017
13:47:24
У новости есть еще категории помимо 5, при простом where != 5 новости у которых эта категория не единственная все равно попадут в выборку

Dmitry
29.12.2017
13:47:27
чем красивее?)
в большинстве случаев джойн для оптимизатора лучше, чем подзапрос... не всегда, но опыт развернуть подзапрос в джойн как бы стоит много

Vasily
29.12.2017
13:47:42
я думаю что по сути все кто давал хоть какие то ответы - уже бы подошли. ибо если не с первой, так со второй попытки запрос будет ими создан

Sergey
29.12.2017
13:48:06
not exists меня устроит, но вариант александра красивее и, возмножно, оптимальнее - тут, конечно, анализировать нужно
not exists не вызовет дублирования рядов по моему субъективному мнению лучше подходит в ситуации когда нужно анти джойн мутить) ну и по эффективности это явно не хуже а может и лучше (в зависимости от количества данных)

Sergey
29.12.2017
13:48:34
Konstantin
29.12.2017
13:48:35
тз говно

Dmitry
29.12.2017
13:50:51
хз, может справедливо для мускуля, в постгрессе оптимизатор нормально подзапросы мутит
переписывая их в джойны внутри ;)... ну, зависит сильно от многих факторов... просто так получается, что сначала человек учится подзапросам, ибо они выглядят много проще, чем джойны... и начинает лепить страшное... по-этому, если мне человек давал ответ с подзапросом - я спрашивал, а можешь без них, с джойном?... тоже не показатель, но какой-то опыт показывает

тут скорее пример на то, что ON немного шире, чем просто условие связки двух таблиц

Sergey
29.12.2017
13:51:59
ну я тебя понял)

Admin
ERROR: S client not available

Konstantin
29.12.2017
13:52:05
для этого и придумали замечательную табличку с кружочками

Dmitry
29.12.2017
13:52:18
многие это не понимают, в итоге условие, которое идеально подошло бы для ON - у них в WHERE и мы имеем лишние ряды при связывании

Konstantin
29.12.2017
13:52:28
сообразительному человеку - 2 раза взглянуть, чтобы лефт от райта и иннер от аутера отличать

Dmitry
29.12.2017
13:54:26
сообразительному человеку - 2 раза взглянуть, чтобы лефт от райта и иннер от аутера отличать
ну подвох этой задачи еще в инерциальности решения... что нам нужно не только джойн выдумать, но и инверсировать условие с != 5 на == 5 по-этому я и говорил в контексте опыта - задача не на знание, как джойны работают, а на опыт их применения - сталкивался или нет ранее

Konstantin
29.12.2017
13:54:54
если я при эксплейне увижу, что всё плохо, то я переделаю запрос

а до того момента - это нахер не нужно

Константин
29.12.2017
13:55:23
Кто нибудь знает почему ICU для американского языка форматирует валюту слитно с ценой? RUB123, а не RUB 123 ?

Dmitry
29.12.2017
13:55:29
если будешь знать как... а гугл не панацея, ибо еще как-то сформулировать нужно

Google
Konstantin
29.12.2017
13:55:51
и всё шустро

запрос почти 200 строк

Dmitry
29.12.2017
13:56:32
из той же области задача на нахождение id максимального значения другого поля при группировке

Sergey
29.12.2017
13:56:37
Konstantin
29.12.2017
13:56:37
иногда достаточно один раз показать, а не требовать )

Sergey
29.12.2017
13:56:58
а то меня тут обвеняют в излишней жесткости по отношению к джунам, а у тебя вообще хорошего мидла можно собесить)

Dmitry
29.12.2017
13:57:41
но вот честно - ты это на джуна?)
нет, конечно... но вот мидл уже вполне может

Dmitry
29.12.2017
13:58:40
но тут тоже на опыт.. один раз увидел где-то, что это можно решать джойном, и отложилось

по крайней мере меня необычность решения этой задачи про максимальное значение настолько в свое время поразила, что я ее помню до сих пор, хотя на практике почти не применял ;)

джун не джун вообще сложное понятие, объем знаний и даже опыта тут не всегда коррелирует

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

Dmitry
29.12.2017
14:03:30
ну ого гуглится... там джойн с условием на неравенство в ON

Sergey
29.12.2017
14:03:42
но тут тоже на опыт.. один раз увидел где-то, что это можно решать джойном, и отложилось
я про NOT EXISTS и EXISTS узнал сильно позже джойнов) потому у меня чуть другое мировосприятие)

Dmitry
29.12.2017
14:04:53
озвучь решение, раз уж начал)
типа такого что-то SELECT s1.article, s1.dealer, s1.price FROM shop s1 LEFT JOIN shop s2 ON s1.article = s2.article AND s1.price < s2.price WHERE s2.article IS NULL; (скопипастил из СО)

Konstantin
29.12.2017
14:12:08
прикольно )

Серег, а ты ща фрилансишь что ли ?

Vladislav
29.12.2017
14:19:18
Арки его нанял

Konstantin
29.12.2017
14:19:32
@fes0r я хз, пентаграму что ли нарисовать )

Страница 538 из 1418