Статьи / MySQL


ON

Условие в выражении JOIN, которое указывает одинаковые столбцы в объединяемых таблицах не накладывающее ограничений на результирующий набор.
Можно перевести как: В КОТОРЫХ - имеется ввиду таблицы.

SELECT * FROM name 
INNER JOIN family
ON name.name=family.first_name
WHERE flag=20


В данном запросе в условии:

ON name.name=family.name

указано по каким критериям связаны таблицы name и family, а в условии

WHERE flag=20

накладывается ограничение.

Таким образом указанное выше выражение можно прочитать следующим образом:

ВЫБРАТЬ ВСЕ* ИЗ ТАБЛИЦЫ name 
ОБЪЕДИНИВ ЕЁ С family
В КОТОРЫХ name.name РАВНО family.first_name
ГДЕ flag РАВЕН 20