Lakin join ile ilgili bir durum olduğunu sanmıyorum.
Bu projede farklı noktalarda join kullandım. Join kavramına çok yabancı değilim.
Dikkatli baktığınızda göreceksiniz ki kucuk_urun_id parametresi 4 ayrı yerde var.
1.si ===> Session içinde
foreach($_SESSION['sepet'] as $kucuk_urun_id=>$value)
2.si ===> Session içinde
array_push($ids, $kucuk_urun_id);
3.sü ===> Sorgu içinde
$sorgu = "SELECT * FROM kucuk_urunler_tablosu WHERE kucuk_urun_id IN ({$ids_arr});"
4.sü ===> Sorgudan sonra
$adet = $_SESSION['sepet'][$kucuk_urun_id]['adet'];
Joinle ilgili bir durum olsa bile bu sadece sorgu kısmı ile ilgili. Geriye kalan 3 satır için de ayrı ayrı müdahaleler gerek.