MySQL — проблема с внешним ключем

Posted by X-3mal on 11.08.2011 in Новости |

Столкнулся с банальной оплошностью.

Ситуация следующая:

В базе данных есть таблица «Заказ», и связанная с ним внешним ключем таблица Курьеры. При удалении курьера значение курьер_ид в таблизе «Заказ» превратилось в NULL (условие внешнего ключа).

На странице сайта я делал выборку типа :

Select … FROM «shop_order»

JOIN shop_drivers ON …

И у меня не выводились заказы, которые доставлял удаленный курьер. Я очень долго парился, не мог понять, почему же они не отображаются. И тут меня осенило! Я то, по глупости, предполагал, что JOIN по умолчанию соответсвует «LEFT JOIN«. Это НЕ ТАК. Возможно, опытные MySQL-щики меня загнобят за такую банальную оплошность, но человек есть человек. До этого не приходилось сталкиваться с данной проблемой, т.к. чаще всего у меня было «ON DELETE CASCADE, ON UPDATE CASCADE».

Метки: , , ,

Copyright © 2011-2019 Записки программиста All rights reserved.
This site is using the Desk Mess Mirrored theme, v2.5, from BuyNowShop.com.