0

ユーザーのテーブルとグループのテーブル、およびユーザーとグループをリンクするテーブルがあります。デフォルトのグループは「すべてのユーザー」です。すべての新規ユーザーは、このグループに配置されます。その後、販売や購入などのより具体的なグループにリンクされますが、「すべてのユーザー」にもとどまります。「すべてのユーザー」グループに属しているが、他のグループのメンバーではないすべてのユーザーを照会したいと思います。

十分に説明したことを願っています。

ありがとう、ボブ

4

3 に答える 3

1
SELECT userid, count(*) group_count
FROM user_groups
GROUP BY userid
HAVING group_count = 1

ユーザーが 1 つのグループだけに属している場合、それはすべてのユーザー グループである必要があり、これはそれらのユーザーだけを一覧表示します。

于 2013-11-14T19:11:42.967 に答える
0

3 つのテーブルがあるとします。たとえば、次のようにします。

tblUser: userid, username
tblgroup: groupid, groupname
tblUserGroup: fkuserid, fkgroupid

新しいユーザーを作成するときは、とtblUserGroupをリンクして、 にレコードを自動的に作成する必要があります。useridgroupid

ユーザーが新しいグループを追加するときはtblUserGroup、同じレコードuseridと新しいgroupid. 最初のレコードは両方のグループに含まれているため、削除する必要はありません。

于 2013-11-14T19:19:11.417 に答える
0

これは、AllUsers というテーブルに id という各ユーザーの一意の ID があり、Group テーブルに AllUsers.id にリンクする外部キー userId があることを前提としています。

SELECT * FROM AllUsers WHERE AllUsers.id != userId;

私があなたの質問を理解していれば、それでうまくいくはずです。

于 2013-11-14T19:10:09.017 に答える