INNER JOIN вернет только строки, в которых есть одинаковые значения в обеих таблицах, тогда как LEFT JOIN вернет ВСЕ строки из таблицы LEFT, даже если в таблице RIGHT нет соответствующей строки
Быстрый пример
TableA
ID Value
1 TableA.Value1
2 TableA.Value2
3 TableA.Value3
TableB
ID Value
2 TableB.ValueB
3 TableB.ValueC
INNER JOIN производит:
SELECT a.ID,a.Value,b.ID,b.Value
FROM TableA a INNER JOIN TableB b ON b.ID = a.ID
a.ID a.Value b.ID b.Value
2 TableA.Value2 2 TableB.ValueB
3 TableA.Value3 3 TableB.ValueC
LEFT JOIN производит:
SELECT a.ID,a.Value,b.ID,b.Value
FROM TableA a LEFT JOIN TableB b ON b.ID = a.ID
a.ID a.Value b.ID b.Value
1 TableA.Value1 NULL NULL
2 TableA.Value2 2 TableB.ValueB
3 TableA.Value3 3 TableB.ValueC
Как вы можете видеть, LEFT JOIN включает строку из таблицы A, где ID = 1, даже если в таблице B нет идентификационной строки, где ID = 1, тогда как INNER JOIN исключает строку специально, потому что в таблице B
HTH [/ g5 нет соответствующей строки] ]
@ tony19 прав. «Предварительная загрузка», которую я выполняю с помощью js, все еще выполняется после изменения. Вот причина медленной загрузки.