miver писал(а):
а можно немного пояснить что к чему. В часности "tab1 LEFT JOIN tab2 ON" и почему нет WHEREВаш изначальный запрос
#sql
SELECT tab1.name, sum(tab2.amount) FROM tab1, tab2 WHERE tab1.id = tab2.idTab1 GROUP BY 1;
#sql
SELECT tab1.name, sum(tab2.amount) FROM tab1 INNER JOIN tab2
ON tab1.id = tab2.idTab1
GROUP BY 1;
INNER JOIN выводит данные с совпадающими id
В этом случае можно использовать или ON или WHERE нет особой разницы
А вот в случае с LEFT JOIN который объединяет все данные из таблиц , нужно строго следовать синтаксису и использовать ON (Это связано с тем что WHERE как то не так обрабатывает NULL который появляется при объединении таблиц где условия не совпадают... но это знать необязательно )