0

これに似た db モデルがあります:複数のテーブルの外部キー

私はaccountテーブルを持っています。anはまたはaccount型の場合があります。アカウント テーブルに複合キーを作成することにしました。venuebandid_account | type

accountたとえば、テーブルからのデータを使用してすべての会場を選択する方法も知っていますSELECT account.*, venue.* FROM venue INNER JOIN account ON (venue.id=account.id AND type=venue)

現在、ユーザーが自分のアカウントを持っている管理パネルがあります(これは、会場またはバンドのいずれかです)。彼がログインすると、会場のアカウントとバンドのアカウントでパネルが異なります。アカウントの種類を確認するためのクエリが 1 つ必要ですか (会場としましょう)、venueそのデータを取得するためにテーブルへの別のクエリが必要ですか? それ以外の場合-次のようなことができますか:

SELECT ... FROM IF(type=venue, venue, band)
4

1 に答える 1

1

これにはいくつかのアプローチがあります。2 つのクエリを実行するのはおそらくそれほど高価ではありませんが、必要に応じて、「アカウント」クエリを「バンド」テーブルと「会場」テーブルの両方に結合し (いずれかの一意の ID によって)、結果に応じて結果から適切な列を取得できます。結果の「アカウントの種類」列。

于 2012-09-25T15:56:09.287 に答える