На технических собеседованиях по sql любят спрашивать о возможном количестве строк после джойна таблиц. Подготовил небольшую шпаргалку для этого вопроса
Есть 2 таблицы с колонкой id. В первой 10 строк, во второй 5. Сколько строк получится при соединении
1️⃣ INNER JOIN
Минимум: 0 (если нет совпадений в таблицах)
Максимум: 50 (если во всех строках первой таблицы стоит одно и то же значение и оно же стоит во всех строках второй таблицы. Тогда к каждой строке первой таблицы прицепятся все строки из второй, то есть получится 10*5 = 50)
2️⃣ LEFT JOIN
Минимум: 10 (строки левой таблице всегда сохраняются в результате)
Максимум: 50 (аналогично с inner join)
3️⃣ FULL OUTER JOIN
Минимум: 10 (если строки правой таблицы совпадают с левой, но при этом нет дублей)
Максимум: 50 (никогда так не было и вот опять)
4️⃣ CROSS JOIN
Строк в любом случае 50