Я часто собеседую разработчиков и часто задаю им простой, как кувалда, вопрос — как внутри работает JOIN в SQL? В ответ я обычно слышу бессвязное мычание про волшебные деревья и индексы, которые быстрее. Когда-то мне казалось, что каждый программист специалист должен знать то, с чем работает. Впоследствии жизнь объяснила мне, что это не так. Но мне все еще не понятно, как можно годами теребить базёнку, даже не догадываясь, а что там у нее «под капотом»?
Я верю, что лично вы, мой читатель — не такой. Вы-то уж точно знаете всю подноготную этих СУБД. Ну, может быть, подзабыли кусочек — но ничего страшного, с кем не бывает. Так давайте же, как интеллигентные люди, вместе повторим, как же работают эти джойны и даже сами реализуем парочку алгоритмов.