Я пытаюсь настроить простую базу данных, в которой у меня есть пользователь, и сохранить его адрес проживания и почтовый адрес. У меня 2 таблицы
Пользователи
id (Primary Key)
name (Varchar 255)
residential_id (foreign key)
postal_id (foreign key)
Адрес
id (primary key)
type (enum of R and P)
street (varchar 255)
suburb (varchar 255)
Я пытаюсь выполнить внутреннее объединение, поэтому я получаю набор результатов, который выглядит следующим образом.
id - имя - residential_street - residential_suburb, postal_street, postal_suburb
Я продолжаю получать нулевые результаты для деталей адреса, я предполагаю, что это потому, что я получаю два набора данных из таблицы адресов, и возникает конфликт. Можно ли вернуть поля адреса, связанные с жилым и почтовым идентификатором одновременно?
Мой синтаксис SQL
SELECT * FROM users
LEFT JOIN address
ON (users.residential_id = address.id AND users.postal_id = address.id)
EDIT. Как уже отмечалось, мой дизайн БД довольно плохой, и я стремлюсь его улучшить.
Главное, чего я пытаюсь достичь, - это то, что я могу хранить данные о человеке вместе с соответствующим адресом проживания и почтовым адресом. Я никогда не буду расширять базу данных, чтобы включить, например, рабочий адрес, так что надеюсь, что это уменьшит сложность таблицы.