Java Interview Tasks
4.83K subscribers
213 photos
1 video
1 file
141 links
Реальные вопросы и задачи с собеседований.
Оригинальный авторский контент.
Актуальный материал.
Уровень вопросов от junior до supersenior.

Автор канала - @alexzelentsov

По рекламе: @alexzelentsov
Download Telegram
🔍 Ответ на задачу про SQL: LEFT JOIN + WHERE — скрытый баг 🐛
LEFT JOIN гарантирует, что все строки из левой таблицы (customers) попадут в результат, даже если в правой таблице (products) нет совпадений — в этом случае столбцы правой таблицы заполняются NULL.

Однако условие WHERE p.status = 'SHIPPED' отфильтровывает все строки, где p.status IS NULL. Это означает, что клиенты без заказов будут исключены из результата, и LEFT JOIN фактически превратится в INNER JOIN.

Вывод:
WHERE по правой таблице превращает LEFT JOIN в INNER JOIN.
Чтобы сохранить поведение LEFT JOIN, условие фильтрации нужно перенести в ON:

SELECT   c.NAME,
p.product_id
FROM customers c
LEFT JOIN products p
ON c.id = p.customer_id
AND p.status = 'SHIPPED';


#sql #leftjoin #where #bug #database #интервью #java_interview_tasks
🔥4👍2👎2