Email or username:

Password:

Forgot your password?
Top-level
OfShad0ws

8. Чтобы соединить несколько таблиц с помощью full join и не задублировать первичный ключ (a), используйте такую конструкцию:
select coalesce(t1.a,t2.a,t3.a,t4.a) as a
from t1
full join t2 on t2.a = t1.a
full join t3 on t3.a = coalesce(t1.a,t2.a)
full join t4 on t4.a = coalesce(t1.a,t2.a,t3.a)

9. Если таблица присоединяется к первой left join, а следующая присоединяется ко второй inner join, то left превращается в inner: это частая ошибка.

#SQLtips

3 comments
OfShad0ws

10. Не стесняйтесь писать комментарии в не очевидных местах, даже если вам кажется, что код никто не читает. Они пригодятся вам же лет через 5, а если с кодом будут работать коллеги или заказчики - они будут счастливы.

#SQLtips

OfShad0ws

11. При выполнении арифметических операций учитывайте, что любая операция с участием null даст null, а деление на 0 - ошибку. Заранее предусмотрите эти сценарии.

#SQLtips

OfShad0ws

12. Если где-то выбираете одно значение из множества с помощью сортировки, заранее предусмотрите, что она может быть/оказаться не однозначной, тогда при каждом запуске может выбираться новое значение.
Одно из решений - добавить в конец сортировки уникальный ключ таблицы, из которой выбирается значение.

#SQLtips

Go Up