powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / foreign key NULL
6 сообщений из 6, страница 1 из 1
foreign key NULL
    #38431757
S_happy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем
Есть библиотека с городами:
city {id, city}
Еще одна библиотека с районами этих городов:
locality {id, city_id, locality}
И есть другая таблица допустим юзеров...
user {id, city_id, locality_id, name}

Таблицы понятно дело связаны внешними ключами, возникла такая проблема, когда city_id в таблице user равен NULL, то
Код: plaintext
SELECT user.name, city.city, locality.locality FROM city, user, locality WHERE city.id=user.city_id AND locality.id=user.locality_id
вообще не отрабатывается... Так и должно быть?
Если да, то как можно составить запрос так, что если в значении user.city_id лежит NULL, то вообще это поле пропускать в SELECTе?
...
Рейтинг: 0 / 0
foreign key NULL
    #38431772
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S_happyвообще не отрабатывается...Работает, работает... но так, как должен, а не так, как ты думаешь.

S_happyТак и должно быть?Да.

S_happyкак можно составить запрос так, что если в значении user.city_id лежит NULL, то вообще это поле пропускать в SELECTе?Во-первых, нет такого понятия, как "пропускать в SELECTе".
Во-вторых, проверка на NULL выполняется конструкцией IS NULL. А проверка истинности хотя бы одного из двух условий - объедиенением их оператором OR.
Ну и... нет ссылки - нет ключа. Или нормализуйте данные, или не говорите про FK, что ли...
...
Рейтинг: 0 / 0
foreign key NULL
    #38431790
S_happy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Спасибо за суровый ответ, я правда плохо дружу с БД... :)
Как вариант сделаю просто тогда в таблице city и других библиотеках с нулевым id значение "не указано", а таблице user, если юзер при регистрации не указывает город или район, то default 0 в столбцы city_id, locality_id.

Если я все же где-то ошибаюсь и это плохой выход - поправьте меня пожалуйста...
...
Рейтинг: 0 / 0
foreign key NULL
    #38431792
S_happy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Спасибо за суровый ответ, я правда плохо дружу с БД... :)
Как вариант сделаю просто тогда в таблице city и других библиотеках нулевой id со значением "не указано", а в таблице user, если юзер при регистрации не указывает город или район, default 0 в столбцах city_id, locality_id.

Если я все же где-то ошибаюсь и это плохой выход - поправьте меня пожалуйста...
Извиняюсь и за корявый Русский:)
...
Рейтинг: 0 / 0
foreign key NULL
    #38431948
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S_happyКак вариант сделаю просто тогда в таблице city и других библиотеках нулевой id со значением "не указано", а в таблице user, если юзер при регистрации не указывает город или район, default 0 в столбцах city_id, locality_id.
Прежде чем бросаться вносить эти изменения - обдумайте хорошенько всю задачу. Особенно процессы.
50% за то, что FK нафиг не нужны - информация изначально не выглядит гарантированно согласованной.

Ну и откройте для себя LEFT JOIN - забавный зверёк, я вам скажу...
...
Рейтинг: 0 / 0
foreign key NULL
    #38431952
S_happy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Спасибо большое...
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / foreign key NULL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]