Свободу политзаключённым! Донат Медиазоне
Тим ·

На текущем проекте есть Настоящие DBA, и я несколько раз удивлялся SQL-запросам, которые они пишут. В частности, хочу записать две вещи, которых я не знал о SQL (и не буду использовать сам в будущем).

JOIN через запятую

SELECT thing_a, thing_b FROM table_a, table_b WHERE table_a.id = table_b.foreign_key_id.

Это join, условие которого написано в where. Это старый стиль, его ещё называют theta-style join.

В целом, считается устаревшим и менее очевидным (лично я привык к обычному JOIN table ON (table_a.field = table_b.field; забываю про существование JOIN table USING (field)).

Создал SQLFiddle с примером.

Ещё есть неплохой пост-сравнение.

ORDER BY 1 / GROUP BY 1, 2, 3

Числа ссылаются на порядок получившихся колонок.

На мой взгляд, это очень хрупкая ерунда — вдруг кто-то добавит ещё одно поле в запрос.