私は2種類のユーザーのデータベースを持っていますが、ユーザーはindividual
またはorganization
のいずれかの親ユーザーuser
の子である可能性があります。 individual
は、両方のユーザーのすべての属性を定義でき、空のフィールドを持つ単一のテーブルを持つのと異なり、user
テーブルを作成することにしました。このテーブルには2つのタイプのユーザー間に共通の属性があります。ユーザのタイプを保持しているので、そのユーザが個人である場合、私はindividual
テーブルを参照しなければならず、その逆の場合はindividual
テーブルとorganization
テーブルはuser foreign key
ここで特定され、私は一つのテーブルをしなかった理由を、私のデータベーステーブル CASEを使用したSQLクエリの問題
のグラフィカルな表現を包みなさいあなたが思っていると、私はアプリの成長に合わせて、ユーザーと組織テーブルの両方に多くの属性を追加することを計画する余地を残しています私は自分のIDを持っていますが、userTypeをチェックして、次の属性セットの正しいテーブルを指し示すにはどうすればいいですか? IDは2で、個々のテーブルにはどのように名詞を付けられますか?
クエリの私の考えはのようなものです:
Select users.email, users.profilePhoto, users.userSince, CASE WHEN userType = 1 THEN SELECT individual.fname, individual.lname WHERE users.id = 1 AND individual.userFK = 1 END FROM users
しかし、私は常にエラーが出るようCASE
声明に精通していないです、助けたいだれでも、あなたが最も歓迎されています。
https://dev.mysql.com/doc/refman/5.7/en/case.html – coder
@coder私はあなたのリンク、その教育に見えたが、今、私は必要なものを1つが、クエリでいます助けて、そこから私が間違っているところを学ぶ –
あなたはそれを行うために 'Case'を必要としません、[' LEFT JOIN'](http://www.mysqltutorial.org/mysql-left-join。 aspx)。 –