私は、ユーザーがいて、住所と住所の両方を保存する単純なデータベースをセットアップしようとしています。私は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-名前-住宅-通り-住宅_郊外、郵便_通り、郵便_郊外
アドレスの詳細についてnullの結果が表示され続けます。これは、アドレステーブルから2セットのデータを取得していて、競合があるためだと思います。住居IDと郵便IDにリンクされている住所欄を同時に返却することはできますか?
私のSQL構文は
SELECT * FROM users
LEFT JOIN address
ON (users.residential_id = address.id AND users.postal_id = address.id)
編集。指摘されているように、私のDB設計はかなり貧弱であり、私はそれを改善しようとしています。私が達成しようとしている重要なことは、個人の詳細とそれに関連する住所および住所を保存できることです。たとえば、データベースを拡張して職場の住所を含めることは決してありません。これにより、テーブルの複雑さが軽減されることを願っています。